next | previous | forward | backward | up | top | index | toc | directory | Macaulay 2 web site

flattenRing(Ring) -- write a ring as a (quotient) of a polynomial ring over ZZ or a prime field

Synopsis

Description

If the optional argument is not given, then the coefficient ring of the result is either ZZ or the base field.

The inverse of the isomorphism F is obtainable with F^-1.

i1 : A = ZZ[a]/(a^2-3)

o1 = A

o1 : QuotientRing
i2 : B = A[x,y,z]/(a*x^2-y^2-z^2, y^3, z^3)

o2 = B

o2 : QuotientRing
i3 : (D,F) = flattenRing B

o3 = (D, map(D,B,{x, y, z, a}))

o3 : Sequence
i4 : F

o4 = map(D,B,{x, y, z, a})

o4 : RingMap D <--- B
i5 : F^-1

o5 = map(B,D,{x, y, z, a})

o5 : RingMap B <--- D
i6 : describe D      

              ZZ[x, y, z, a]
o6 = -------------------------------
       2       2     2    2   3   3
     (a  - 3, x a - y  - z , y , z )

In the following example, the coefficient ring of the result is the fraction field K.

i7 : K = frac(ZZ[a])

o7 = K

o7 : FractionField
i8 : B = K[x,y,z]/(a*x^2-y^2-z^2, y^3, z^3)

o8 = B

o8 : QuotientRing
i9 : (D,F) = flattenRing B

o9 = (B, map(B,B,{x, y, z, a}))

o9 : Sequence
i10 : describe D      

             K[x, y, z]
o10 = ------------------------
          2    2    2   3   3
      (a*x  - y  - z , y , z )

Once a ring has been declared to be a field with toField, then it will be used as the coefficient ring.

i11 : L = toField A

o11 = A

o11 : QuotientRing
i12 : B = L[x,y,z]/(a*x^2-y^2-z^2, y^3, z^3)

o12 = B

o12 : QuotientRing
i13 : (D,F) = flattenRing(B[s,t])

o13 = (D, map(D,B[s, t],{s, t, x, y, z, a}))

o13 : Sequence
i14 : describe D      

          A[s, t, x, y, z]
o14 = ------------------------
          2    2    2   3   3
      (a*x  - y  - z , y , z )

If a larger coefficient ring is desired, use the optional CoefficientRing parameter.

i15 : use L

o15 = A

o15 : QuotientRing
i16 : C1 = L[s,t];
i17 : C2 = C1/(a*s-t^2);
i18 : C3 = C2[p_0..p_4]/(a*s*p_0)[q]/(q^2-a*p_1);
i19 : (D,F) = flattenRing(C3, CoefficientRing=>C2)

o19 = (D, map(D,C3,{q, p , p , p , p , p , s, t, a}))
                        0   1   2   3   4

o19 : Sequence
i20 : describe D

      C2[q, p , p , p , p , p ]
             0   1   2   3   4
o20 = -------------------------
                   2
         (a*s*p , q  - a*p )
               0          1
i21 : (D,F) = flattenRing(C3, CoefficientRing=>ZZ)

o21 = (D, map(D,C3,{q, p , p , p , p , p , s, t, a}))
                        0   1   2   3   4

o21 : Sequence
i22 : describe D

        ZZ[q, p , p , p , p , p , s, t, a]
               0   1   2   3   4
o22 = -------------------------------------
        2         2                2
      (a  - 3, - t  + s*a, p s*a, q  - p a)
                            0           1

See also