next | previous | forward | backward | up | index | toc

# RingMap -- the class of all ring maps

## Description

For an overview of ring maps, substitution of variables, and finding implicit equations of a set of polynomial or rational functions, see substitution and maps between rings.

A ring map $F : R \rightarrow{} S$, where $R$ is a polynomial ring, is specified by giving the images in $S$ of the variables of $R$. For a simple example, consider the following map. Notice that, as is usual in Macaulay2, the target ring is given before the source.
 i1 : R = QQ[a,b,c]; S = QQ[s,t]; i3 : F = map(S,R,{s^3-t^2, s^3-t, s-t}) 3 2 3 o3 = map (S, R, {s - t , s - t, s - t}) o3 : RingMap S <-- R i4 : target F o4 = S o4 : PolynomialRing i5 : source F o5 = R o5 : PolynomialRing i6 : F.matrix o6 = | s3-t2 s3-t s-t | 1 3 o6 : Matrix S <-- S
There are other ways to define ring maps. See below.

Apply matrices to ring elements, vectors, matrices, and ideals using usual function notation.
 i7 : F (a+b) 3 2 o7 = 2s - t - t o7 : S
The kernel of such ring maps are constructed with the aid of Gröbner bases. Preimages of ideals are constructed using the same method.
 i8 : I = kernel F 6 4 4 5 2 2 2 2 2 3 3 o8 = ideal(c + 3a*c - 3b*c + 3c + 3a c - 6a*b*c + 3b c + 6a*c - 8b*c ------------------------------------------------------------------------ 4 3 2 2 3 2 2 2 2 + 3c + a - 3a b + 3a*b - b + 3a c - 3b c - 3a*c + 2a - a*b - 3a*c) o8 : Ideal of R i9 : F I o9 = ideal 0 o9 : Ideal of S i10 : J = preimage(F, ideal(s-3)) 2 o10 = ideal (b - c - 24, c + a - 6c - 18) o10 : Ideal of R i11 : isSubset(F J, ideal(s-3)) o11 = true
Geometrically, the inverse image of this line is a conic.

Consider the Cremona transform, and its square:
 i12 : G = map(R,R,{a=>b*c,b=>a*c,c=>a*b}) o12 = map (R, R, {b*c, a*c, a*b}) o12 : RingMap R <-- R i13 : G*G 2 2 2 o13 = map (R, R, {a b*c, a*b c, a*b*c }) o13 : RingMap R <-- R
These are injective ring maps
 i14 : ker G == 0 o14 = true i15 : isInjective G o15 = true i16 : coimage G o16 = R o16 : PolynomialRing

Common ways to make a ring map:
Common ways to get information about ring maps:
Common operations on ring maps:
Applying ring maps, and composing ring maps:
Operations involving modules

## Functions and methods returning a ring map :

• RingMap * RingMap -- see * -- a binary operator, usually used for multiplication
• icMap(Ring) -- see icMap -- natural map from an affine domain into its integral closure
• map(GaloisField,GaloisField) (missing documentation)
• map(Ring,Matrix) -- make a ring map
• map(Ring,Ring) -- make a ring map, using the names of the variables
• map(Ring,Ring,List) -- make a ring map
• map(Ring,Ring,Matrix) -- make a ring map
• map(Ring,Ring,RingMap) -- see map(Ring,Ring,Matrix) -- make a ring map
• RingMap ^ ZZ -- see powers
• symmetricAlgebra(Matrix) -- see symmetricAlgebra -- the symmetric algebra of a module
• symmetricAlgebra(Nothing,Nothing,Matrix) -- see symmetricAlgebra -- the symmetric algebra of a module
• symmetricAlgebra(Nothing,Ring,Matrix) -- see symmetricAlgebra -- the symmetric algebra of a module
• symmetricAlgebra(Ring,Nothing,Matrix) -- see symmetricAlgebra -- the symmetric algebra of a module
• symmetricAlgebra(Ring,Ring,Matrix) -- see symmetricAlgebra -- the symmetric algebra of a module

## For the programmer

The object RingMap is a type, with ancestor classes HashTable < Thing.