next | previous | forward | backward | up | index | toc

# seminormalize -- seminormalize a reduced ring

## Synopsis

• Usage:
seminormalize(S)
• Inputs:
• Optional inputs:
• Strategy => ..., default value {}, controls what strategy is used in calls to integralClosure
• Variable => ..., default value Yy, set the name for new variables created by the function
• Outputs:
• a list, the first entry of which is the seminormalization of the ring, the second and thirds are maps between the ring, its seminormalization and its normalization

## Description

This seminormalizes a reduced ring and outputs a list, the first entry of which is the seminormalized ring, the second is the map from the ring to its seminormalization, and finally the map from the seminormalization to its normalization. In our first example, the cusp, the seminormalization and normalization are isomorphic.

 i1 : R = QQ[x,y]/ideal(x^3 - y^2); i2 : L = seminormalize(R) QQ[Yy ..Yy ] 0 2 o2 = {---------------------------------------, map 2 2 (Yy - Yy , Yy Yy - Yy , Yy - Yy Yy ) 2 1 1 2 0 1 0 2 ------------------------------------------------------------------------ QQ[Yy ..Yy ] 0 2 (---------------------------------------, R, {Yy , Yy }), map 2 2 1 0 (Yy - Yy , Yy Yy - Yy , Yy - Yy Yy ) 2 1 1 2 0 1 0 2 ------------------------------------------------------------------------ QQ[Yy , x..y] 0,0 (------------------------------------, 2 2 (Yy y - x , Yy x - y, Yy - x) 0,0 0,0 0,0 ------------------------------------------------------------------------ QQ[Yy ..Yy ] 0 2 ---------------------------------------, {y, x, Yy })} 2 2 0,0 (Yy - Yy , Yy Yy - Yy , Yy - Yy Yy ) 2 1 1 2 0 1 0 2 o2 : List i3 : L#0 QQ[Yy ..Yy ] 0 2 o3 = --------------------------------------- 2 2 (Yy - Yy , Yy Yy - Yy , Yy - Yy Yy ) 2 1 1 2 0 1 0 2 o3 : QuotientRing i4 : target(L#2) QQ[Yy , x..y] 0,0 o4 = ------------------------------------ 2 2 (Yy y - x , Yy x - y, Yy - x) 0,0 0,0 0,0 o4 : QuotientRing

The previous example seminormalized a non-seminormal ring. Let's try a seminormal ring (the pinch point).

 i5 : R = QQ[x,y,z]/ideal(x^2*y-z^2); i6 : L = seminormalize(R) QQ[Yy ..Yy ] QQ[Yy ..Yy ] 0 2 0 2 o6 = {------------, map (------------, R, {Yy , Yy , Yy }), map 2 2 2 2 1 2 0 Yy Yy - Yy Yy Yy - Yy 1 2 0 1 2 0 ------------------------------------------------------------------------ QQ[Yy , x..z] QQ[Yy ..Yy ] 0,0 0 2 (-------------------------------------, ------------, {z, x, y})} 2 2 2 (Yy z - x*y, Yy x - z, Yy - y) Yy Yy - Yy 0,0 0,0 0,0 1 2 0 o6 : List i7 : L#0 QQ[Yy ..Yy ] 0 2 o7 = ------------ 2 2 Yy Yy - Yy 1 2 0 o7 : QuotientRing i8 : target(L#2) QQ[Yy , x..z] 0,0 o8 = ------------------------------------- 2 (Yy z - x*y, Yy x - z, Yy - y) 0,0 0,0 0,0 o8 : QuotientRing

We conclude with an example of a ring where the seminormalization, the normalization and the ring itself are all are distinct, the tacnode.

 i9 : R = QQ[x,y]/ideal(y*(y-x^2)); i10 : L = seminormalize(R) QQ[Yy ..Yy ] QQ[Yy ..Yy ] 0 1 0 1 2 o10 = {------------, map (------------, R, {Yy + Yy , Yy }), map Yy Yy Yy Yy 0 1 0 0 1 0 1 ----------------------------------------------------------------------- QQ[Yy ..Yy ] QQ[Yy0, Yy1, Yy2] 0 1 (------------------------------------, ------------, {Yy1, Yy0})} 2 Yy Yy (Yy2 - Yy2, Yy1*Yy2 - Yy1, Yy0*Yy2) 0 1 o10 : List i11 : L#0 QQ[Yy ..Yy ] 0 1 o11 = ------------ Yy Yy 0 1 o11 : QuotientRing i12 : target(L#2) QQ[Yy0, Yy1, Yy2] o12 = ------------------------------------ 2 (Yy2 - Yy2, Yy1*Yy2 - Yy1, Yy0*Yy2) o12 : QuotientRing

## Ways to use seminormalize :

• seminormalize(Ring)

## For the programmer

The object seminormalize is .