For example, consider the following rings.
i4 : map(B,A)
o4 = map (B, A, {a, b, c, d, e})
o4 : RingMap B <-- A
|
i5 : map(A,B)
o5 = map (A, B, {0, 0, a, b, c, d, e})
o5 : RingMap A <-- B
|
i6 : F = map(B,C)
o6 = map (B, C, {a, b, c, d, e, x, y})
o6 : RingMap B <-- C
|
i7 : G = map(C,B)
o7 = map (C, B, {x, y, a, b, c, d, e})
o7 : RingMap C <-- B
|
i8 : F*G
o8 = map (B, B, {x, y, a, b, c, d, e})
o8 : RingMap B <-- B
|
i9 : oo === id_B
o9 = true
|
i10 : G*F
o10 = map (C, C, {a, b, c, d, e, x, y})
o10 : RingMap C <-- C
|
i11 : oo === id_C
o11 = true
|
The ring maps that are created are not always mathematically well-defined. For example, the map F below is the natural quotient map, but the map
is not mathematically well-defined, although we can use it in Macaulay2 to lift elements of
.
i12 : D = QQ[x,y,z];
|
i13 : E = D/(x^2-z-1,y);
|
i14 : F = map(E,D)
o14 = map (E, D, {x, 0, z})
o14 : RingMap E <-- D
|
i15 : G = map(D,E)
o15 = map (D, E, {x, y, z})
o15 : RingMap D <-- E
|
i16 : x^3
o16 = x*z + x
o16 : E
|
i17 : G x^3
o17 = x*z + x
o17 : D
|