-- -*- M2-comint -*- hash: 15168020037259761179

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]

i17 : 
