<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>RingMap -- the class of all ring maps</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="___Ring__Map_sp_st_st_sp__Matrix.html">next</a> | <a href="___Ring__Family_sp_us_st.html">previous</a> | <a href="___Ring__Map_sp_st_st_sp__Matrix.html">forward</a> | <a href="___Ring__Family_sp_us_st.html">backward</a> | up | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <hr/> <div><h1>RingMap -- the class of all ring maps</h1> <div class="single"><h2>Description</h2> <div>For an overview of ring maps, substitution of variables, and finding implicit equations of a set of polynomial or rational functions, see <a href="_substitution_spand_spmaps_spbetween_springs.html" title="">substitution and maps between rings</a>.<p/> A ring map <i>F : R → S</i>, where <i>R</i> is a polynomial ring, is specified by giving the images in <i>S</i> of the variables of <i>R</i>. For a simple example, consider the following map. Notice that, as is usual in Macaulay2, the target ring is given before the source.<table class="examples"><tr><td><pre>i1 : R = QQ[a,b,c]; S = QQ[s,t];</pre> </td></tr> <tr><td><pre>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</pre> </td></tr> <tr><td><pre>i4 : target F o4 = S o4 : PolynomialRing</pre> </td></tr> <tr><td><pre>i5 : source F o5 = R o5 : PolynomialRing</pre> </td></tr> <tr><td><pre>i6 : F.matrix o6 = | s3-t2 s3-t s-t | 1 3 o6 : Matrix S <--- S</pre> </td></tr> </table> There are other ways to define ring maps. See below.<p/> Apply matrices to ring elements, vectors, matrices, and ideals using usual function notation.<table class="examples"><tr><td><pre>i7 : F (a+b) 3 2 o7 = 2s - t - t o7 : S</pre> </td></tr> </table> The kernel of such ring maps are constructed with the aid of Gröbner bases. Preimages of ideals are constructed using the same method. <table class="examples"><tr><td><pre>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</pre> </td></tr> <tr><td><pre>i9 : F I o9 = ideal 0 o9 : Ideal of S</pre> </td></tr> <tr><td><pre>i10 : J = preimage(F, ideal(s-3)) 2 o10 = ideal (b - c - 24, c + a - 6c - 18) o10 : Ideal of R</pre> </td></tr> <tr><td><pre>i11 : isSubset(F J, ideal(s-3)) o11 = true</pre> </td></tr> </table> Geometrically, the inverse image of this line is a conic.<p/> Consider the Cremona transform, and its square:<table class="examples"><tr><td><pre>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</pre> </td></tr> <tr><td><pre>i13 : G*G 2 2 2 o13 = map(R,R,{a b*c, a*b c, a*b*c }) o13 : RingMap R <--- R</pre> </td></tr> </table> These are injective ring maps<table class="examples"><tr><td><pre>i14 : ker G == 0 o14 = true</pre> </td></tr> <tr><td><pre>i15 : isInjective G o15 = true</pre> </td></tr> <tr><td><pre>i16 : coimage G o16 = R o16 : PolynomialRing</pre> </td></tr> </table> <p/> <b>Common ways to make a ring map:</b><ul><li><span><a href="_map_lp__Ring_cm__Ring_rp.html" title="make a ring map, using the names of the variables">map(Ring,Ring)</a> -- make a ring map, using the names of the variables</span></li> <li><span><a href="_map_lp__Ring_cm__Ring_cm__List_rp.html" title="make a ring map">map(Ring,Ring,List)</a> -- make a ring map</span></li> <li><span><a href="_map_lp__Ring_cm__Matrix_rp.html" title="make a ring map">map(Ring,Matrix)</a> -- make a ring map</span></li> <li><span><a href="_map_lp__Ring_cm__Ring_cm__Matrix_rp.html" title="make a ring map">map(Ring,Ring,Matrix)</a> -- make a ring map</span></li> </ul> <b>Common ways to get information about ring maps:</b><ul><li><span><a href="_is__Homogeneous.html" title="whether something is homogeneous (graded)">isHomogeneous(RingMap)</a> -- whether something is homogeneous (graded)</span></li> <li><span><a href="_is__Injective.html" title="whether a map is injective">isInjective(RingMap)</a> -- whether a map is injective</span></li> </ul> <b>Common operations on ring maps:</b><ul><li><span><a href="_kernel_lp__Ring__Map_rp.html" title="kernel of a ringmap">kernel(RingMap)</a> -- kernel of a ringmap</span></li> <li><span><a href="_coimage.html" title="coimage of a map">coimage(RingMap)</a> -- coimage of a map</span></li> <li><span><a href="_preimage.html" title="preimage of an ideal under a ring map">preimage(RingMap,Ideal)</a> -- preimage of an ideal under a ring map</span></li> </ul> <b>Applying ring maps, and composing ring maps:</b><ul><li><span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></li> <li><span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap Matrix</a> -- apply a ring map</span></li> <li><span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap Ideal</a> -- apply a ring map</span></li> <li><span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap Module</a> -- apply a ring map</span></li> <li><span><a href="__st.html" title="a binary operator, usually used for multiplication">RingMap * RingMap</a> -- a binary operator, usually used for multiplication</span></li> </ul> <b>Operations involving modules</b><ul><li><span><a href="_push__Forward_lp__Ring__Map_cm__Module_rp.html" title="">pushForward</a></span></li> <li><span><a href="___Ring__Map_sp_st_st_sp__Module.html" title="tensor product of a module via a ring map">RingMap ** Module</a> -- tensor product of a module via a ring map</span></li> </ul> </div> </div> <div class="waystouse"><h2>Functions and methods returning a ring map :</h2> <ul><li><span>RingMap * RingMap, see <span><a href="__st.html" title="a binary operator, usually used for multiplication">*</a> -- a binary operator, usually used for multiplication</span></span></li> <li><span>icMap(Ring), see <span><a href="../../IntegralClosure/html/_ic__Map.html" title="natural map from an affine domain into its integral closure">icMap</a> -- natural map from an affine domain into its integral closure</span></span></li> <li><span><tt>map(GaloisField,GaloisField)</tt> (missing documentation<!-- tag: (map,GaloisField,GaloisField) -->)</span></li> <li><span><a href="_map_lp__Ring_cm__Matrix_rp.html" title="make a ring map">map(Ring,Matrix)</a> -- make a ring map</span></li> <li><span><a href="_map_lp__Ring_cm__Ring_rp.html" title="make a ring map, using the names of the variables">map(Ring,Ring)</a> -- make a ring map, using the names of the variables</span></li> <li><span><a href="_map_lp__Ring_cm__Ring_cm__List_rp.html" title="make a ring map">map(Ring,Ring,List)</a> -- make a ring map</span></li> <li><span><a href="_map_lp__Ring_cm__Ring_cm__Matrix_rp.html" title="make a ring map">map(Ring,Ring,Matrix)</a> -- make a ring map</span></li> <li><span>map(Ring,Ring,RingMap), see <span><a href="_map_lp__Ring_cm__Ring_cm__Matrix_rp.html" title="make a ring map">map(Ring,Ring,Matrix)</a> -- make a ring map</span></span></li> <li><span>symmetricAlgebra(Matrix), see <span><a href="_symmetric__Algebra.html" title="the symmetric algebra of a module">symmetricAlgebra</a> -- the symmetric algebra of a module</span></span></li> <li><span>symmetricAlgebra(Nothing,Nothing,Matrix), see <span><a href="_symmetric__Algebra.html" title="the symmetric algebra of a module">symmetricAlgebra</a> -- the symmetric algebra of a module</span></span></li> <li><span>symmetricAlgebra(Nothing,Ring,Matrix), see <span><a href="_symmetric__Algebra.html" title="the symmetric algebra of a module">symmetricAlgebra</a> -- the symmetric algebra of a module</span></span></li> <li><span>symmetricAlgebra(Ring,Nothing,Matrix), see <span><a href="_symmetric__Algebra.html" title="the symmetric algebra of a module">symmetricAlgebra</a> -- the symmetric algebra of a module</span></span></li> <li><span>symmetricAlgebra(Ring,Ring,Matrix), see <span><a href="_symmetric__Algebra.html" title="the symmetric algebra of a module">symmetricAlgebra</a> -- the symmetric algebra of a module</span></span></li> </ul> <h2>Methods that use a ring map :</h2> <ul><li><span>RingMap == ZZ, see <span><a href="__eq_eq.html" title="equality">==</a> -- equality</span></span></li> <li><span>ZZ == RingMap, see <span><a href="__eq_eq.html" title="equality">==</a> -- equality</span></span></li> <li><span>coimage(RingMap), see <span><a href="_coimage.html" title="coimage of a map">coimage</a> -- coimage of a map</span></span></li> <li><span>conductor(RingMap), see <span><a href="../../IntegralClosure/html/_conductor.html" title="the conductor of a finite ring map">conductor</a> -- the conductor of a finite ring map</span></span></li> <li><span><a href="_graph__Ideal_lp__Ring__Map_rp.html" title="the ideal of the graph of the regular map corresponding to a ring map">graphIdeal(RingMap)</a> -- the ideal of the graph of the regular map corresponding to a ring map</span></li> <li><span><a href="_graph__Ring_lp__Ring__Map_rp.html" title="the coordinate ring of the graph of the regular map corresponding to a ring map">graphRing(RingMap)</a> -- the coordinate ring of the graph of the regular map corresponding to a ring map</span></li> <li><span>isHomogeneous(RingMap), see <span><a href="_is__Homogeneous.html" title="whether something is homogeneous (graded)">isHomogeneous</a> -- whether something is homogeneous (graded)</span></span></li> <li><span>isInjective(RingMap), see <span><a href="_is__Injective.html" title="whether a map is injective">isInjective</a> -- whether a map is injective</span></span></li> <li><span>isWellDefined(RingMap), see <span><a href="_is__Well__Defined.html" title="whether a map is well defined">isWellDefined</a> -- whether a map is well defined</span></span></li> <li><span><a href="_kernel_lp__Ring__Map_rp.html" title="kernel of a ringmap">kernel(RingMap)</a> -- kernel of a ringmap</span></li> <li><span>map(Module,Module,RingMap,List), see <span><a href="_map_lp__Module_cm__Module_cm__Ring__Map_cm__Matrix_rp.html" title="homomorphism of modules over different rings">map(Module,Module,RingMap,Matrix)</a> -- homomorphism of modules over different rings</span></span></li> <li><span><a href="_map_lp__Module_cm__Module_cm__Ring__Map_cm__Matrix_rp.html" title="homomorphism of modules over different rings">map(Module,Module,RingMap,Matrix)</a> -- homomorphism of modules over different rings</span></li> <li><span>map(Module,Nothing,RingMap,List), see <span><a href="_map_lp__Module_cm__Module_cm__Ring__Map_cm__Matrix_rp.html" title="homomorphism of modules over different rings">map(Module,Module,RingMap,Matrix)</a> -- homomorphism of modules over different rings</span></span></li> <li><span>map(Module,Nothing,RingMap,Matrix), see <span><a href="_map_lp__Module_cm__Module_cm__Ring__Map_cm__Matrix_rp.html" title="homomorphism of modules over different rings">map(Module,Module,RingMap,Matrix)</a> -- homomorphism of modules over different rings</span></span></li> <li><span>map(Module,RingMap), see <span><a href="_map_lp__Module_cm__Module_cm__Ring__Map_cm__Matrix_rp.html" title="homomorphism of modules over different rings">map(Module,Module,RingMap,Matrix)</a> -- homomorphism of modules over different rings</span></span></li> <li><span><a href="_matrix_lp__Ring__Map_rp.html" title="the matrix associated to a ring map">matrix(RingMap)</a> -- the matrix associated to a ring map</span></li> <li><span>RingMap ^ ZZ, see <span><a href="_powers.html" title="">powers</a></span></span></li> <li><span>preimage(RingMap,Ideal), see <span><a href="_preimage.html" title="preimage of an ideal under a ring map">preimage</a> -- preimage of an ideal under a ring map</span></span></li> <li><span><a href="_push__Forward_lp__Ring__Map_cm__Module_rp.html" title="">pushForward(RingMap,Module)</a></span></li> <li><span><a href="___Ring__Map_sp_st_st_sp__Matrix.html" title="tensor product of a module map via a ring map">RingMap ** Matrix</a> -- tensor product of a module map via a ring map</span></li> <li><span><a href="___Ring__Map_sp_st_st_sp__Module.html" title="tensor product of a module via a ring map">RingMap ** Module</a> -- tensor product of a module via a ring map</span></li> <li><span>RingMap ChainComplex, see <span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></span></li> <li><span>RingMap Ideal, see <span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></span></li> <li><span>RingMap Matrix, see <span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></span></li> <li><span>RingMap Module, see <span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></span></li> <li><span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></li> <li><span>RingMap Vector, see <span><a href="___Ring__Map_sp__Ring__Element.html" title="apply a ring map">RingMap RingElement</a> -- apply a ring map</span></span></li> <li><span><a href="_source_lp__Ring__Map_rp.html" title="find the source ring for a map of rings">source(RingMap)</a> -- find the source ring for a map of rings</span></li> <li><span><a href="_target_lp__Ring__Map_rp.html" title="find the target ring for a map of rings">target(RingMap)</a> -- find the target ring for a map of rings</span></li> <li><span><a href="_tensor_lp__Ring_cm__Ring__Map_cm__Matrix_rp.html" title="tensor product via a ring map">tensor(Ring,RingMap,Matrix)</a> -- tensor product via a ring map</span></li> <li><span>tensor(Ring,RingMap,Module), see <span><a href="_tensor_lp__Ring_cm__Ring__Map_cm__Matrix_rp.html" title="tensor product via a ring map">tensor(Ring,RingMap,Matrix)</a> -- tensor product via a ring map</span></span></li> <li><span>tensor(RingMap,Matrix), see <span><a href="_tensor_lp__Ring_cm__Ring__Map_cm__Matrix_rp.html" title="tensor product via a ring map">tensor(Ring,RingMap,Matrix)</a> -- tensor product via a ring map</span></span></li> <li><span>tensor(RingMap,Module), see <span><a href="_tensor_lp__Ring_cm__Ring__Map_cm__Matrix_rp.html" title="tensor product via a ring map">tensor(Ring,RingMap,Matrix)</a> -- tensor product via a ring map</span></span></li> <li><span>List / RingMap, see <span><a href="___Visible__List_sp_sl_sp__Function.html" title="apply a function to elements of a list">VisibleList / Function</a> -- apply a function to elements of a list</span></span></li> <li><span>RingMap \ List, see <span><a href="___Visible__List_sp_sl_sp__Function.html" title="apply a function to elements of a list">VisibleList / Function</a> -- apply a function to elements of a list</span></span></li> </ul> </div> <div class="waystouse"><h2>For the programmer</h2> <p>The object <a href="___Ring__Map.html" title="the class of all ring maps">RingMap</a> is <span>a <a href="___Type.html">type</a></span>, with ancestor classes <a href="___Hash__Table.html" title="the class of all hash tables">HashTable</a> < <a href="___Thing.html" title="the class of all things">Thing</a>.</p> </div> </div> </body> </html>