The flattenRing documentation goes into much greater detail about the Result option. This node has some examples only.
i1 : k = toField (QQ[x]/(x^2+x+1)); |
i2 : R = k[y]/(x-y+2); |
i3 : flattenRing(R, Result => 1) o3 = R o3 : QuotientRing |
i4 : flattenRing(R, Result => 2)
o4 = (R, map(R,R,{x + 2, x}))
o4 : Sequence
|
i5 : flattenRing(R, Result => 3)
o5 = (R, map(R,R,{x + 2, x}), map(R,R,{x + 2, x}))
o5 : Sequence
|
i6 : flattenRing(R, Result => (Nothing, RingMap))
o6 = (, map(k[y],R,{x + 2, x}))
o6 : Sequence
|
i7 : flattenRing(R, Result => (Ring, Nothing, RingMap))
o7 = (R, , map(R,R,{x + 2, x}))
o7 : Sequence
|
i8 : flattenRing(R, Result => (Nothing, ))
o8 = (, map(k[y],R,{x + 2, x}))
o8 : Sequence
|
i9 : flattenRing(R, Result => ( , Nothing, ) )
o9 = (R, , map(R,R,{x + 2, x}))
o9 : Sequence
|
i10 : I = ideal(x*y+y^2-5); o10 : Ideal of R |
i11 : flattenRing(I, Result => 1) o11 = ideal (- y + x + 2, 4x - 3) o11 : Ideal of k[y] |
i12 : flattenRing(I, Result => 3)
o12 = (ideal (- y + x + 2, 4x - 3), map(k[y],R,{x + 2, x}), map(R,k[y],{x + 2, x}))
o12 : Sequence
|
i13 : flattenRing(I, Result => (Ring, Nothing, RingMap))
k[y] k[y]
o13 = (---------------------, , map(R,---------------------,{x + 2, x}))
(- y + x + 2, 4x - 3) (- y + x + 2, 4x - 3)
o13 : Sequence
|
i14 : flattenRing(I, Result => (Ideal, Nothing, RingMap))
o14 = (ideal (- y + x + 2, 4x - 3), , map(R,k[y],{x + 2, x}))
o14 : Sequence
|
i15 : flattenRing(I, Result => (Ring, RingMap))
k[y] k[y]
o15 = (---------------------, map(---------------------,R,{0, 0}))
(- y + x + 2, 4x - 3) (- y + x + 2, 4x - 3)
o15 : Sequence
|
i16 : flattenRing(I, Result => Ideal) o16 = ideal (- y + x + 2, 4x - 3) o16 : Ideal of k[y] |