Description
newCoordinateSystem(S,m) -- takes a one-rowed matrix
m of independent linear forms over a ring
R and returns a pair
(f,g), where
f is a ring map given by some linear change of coordinates from
R to
S which sends the last variables of
R to the forms in
m, and
g is the inverse of
f.
The ring
S should have the same number of variables as
S.
i1 : R = ZZ/101[a..d]
o1 = R
o1 : PolynomialRing
|
i2 : S = ZZ/101[p..s]
o2 = S
o2 : PolynomialRing
|
i3 : (f,g) = newCoordinateSystem(S,matrix{{a+2*b,3*c-d}});
|
i4 : f
o4 = map (S, R, {50p, 3r, p + 2q, 3r - s})
o4 : RingMap S <-- R
|
i5 : g
o5 = map (R, S, {-2a, a - 50c, 34b, b - d})
o5 : RingMap R <-- S
|