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] |