<?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>quotient rings</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="_manipulating_sppolynomials.html">next</a> | <a href="_graded_spand_spmultigraded_sppolynomial_springs.html">previous</a> | <a href="_manipulating_sppolynomials.html">forward</a> | <a href="_graded_spand_spmultigraded_sppolynomial_springs.html">backward</a> | <a href="_rings.html">up</a> | <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> <div><a href="index.html" title="">Macaulay2Doc</a> > <a href="_rings.html" title="">rings</a> > <a href="_quotient_springs.html" title="">quotient rings</a></div> <hr/> <div><h1>quotient rings</h1> <div>The usual notation is used to form quotient rings. For quotients of polynomial rings, a Gröbner basis is computed and used to reduce ring elements to normal form after arithmetic operations.<table class="examples"><tr><td><pre>i1 : R = ZZ/11 o1 = R o1 : QuotientRing</pre> </td></tr> <tr><td><pre>i2 : 6_R + 7_R o2 = 2 o2 : R</pre> </td></tr> </table> <table class="examples"><tr><td><pre>i3 : S = QQ[x,y,z]/(x^2-y, y^3-z) o3 = S o3 : QuotientRing</pre> </td></tr> <tr><td><pre>i4 : {1,x,x^2,x^3,x^4,x^5,x^6,x^7,x^8} 2 2 o4 = {1, x, y, x*y, y , x*y , z, x*z, y*z} o4 : List</pre> </td></tr> </table> In the example above you might have wondered whether typing <tt>x</tt> would give an element of <tt>S</tt> or an element of <tt>QQ[x,y,z]</tt>. Our convention is that typing <tt>x</tt> gives an element of the last ring that has been assigned to a global variable. Here is another example.<table class="examples"><tr><td><pre>i5 : T = ZZ/101[r,s,t] o5 = T o5 : PolynomialRing</pre> </td></tr> <tr><td><pre>i6 : T/(r^3+s^3+t^3) T o6 = ------------ 3 3 3 r + s + t o6 : QuotientRing</pre> </td></tr> <tr><td><pre>i7 : r^3+s^3+t^3 3 3 3 o7 = r + s + t o7 : T</pre> </td></tr> </table> Notice that this time, the variables end up in the ring <tt>T</tt>, because we didn't assign the quotient ring to a global variable. The command <a href="_use.html" title="install or activate object">use</a> would install the variables for us, or we could assign the ring to a global variable.<table class="examples"><tr><td><pre>i8 : U = ooo o8 = U o8 : QuotientRing</pre> </td></tr> <tr><td><pre>i9 : r^3+s^3+t^3 o9 = 0 o9 : U</pre> </td></tr> </table> The functions <a href="_lift.html" title="lift to another ring">lift</a> and <a href="_substitute.html" title="substituting values for variables">substitute</a> can be used to transfer elements between the polynomial ring and its quotient ring.<table class="examples"><tr><td><pre>i10 : lift(U_"r",T) o10 = r o10 : T</pre> </td></tr> <tr><td><pre>i11 : substitute(T_"r",U) o11 = r o11 : U</pre> </td></tr> </table> A random element of degree <tt>n</tt> can be obtained with <a href="_random.html" title="get a random element">random</a>.<table class="examples"><tr><td><pre>i12 : random(2,S) 1 1 2 4 7 2 o12 = -x*y + -y + -x*z + y*z + -z 4 2 5 6 o12 : S</pre> </td></tr> </table> In a program we can tell whether a ring is a quotient ring.<table class="examples"><tr><td><pre>i13 : isQuotientRing ZZ o13 = false</pre> </td></tr> <tr><td><pre>i14 : isQuotientRing S o14 = true</pre> </td></tr> </table> We can recover the ring of which a given ring is a quotient.<table class="examples"><tr><td><pre>i15 : ambient S o15 = QQ[x, y, z] o15 : PolynomialRing</pre> </td></tr> </table> We can also recover the coefficient ring, as we could for the original polynomial ring.<table class="examples"><tr><td><pre>i16 : coefficientRing S o16 = QQ o16 : Ring</pre> </td></tr> </table> Here's how we can tell whether the defining relations of a quotient ring were homogeneous.<table class="examples"><tr><td><pre>i17 : isHomogeneous S o17 = false</pre> </td></tr> <tr><td><pre>i18 : isHomogeneous U o18 = true</pre> </td></tr> </table> We can obtain the characteristic of a ring with <a href="_char.html" title="computes the characteristic of the ring or field">char</a>.<table class="examples"><tr><td><pre>i19 : char (ZZ/11) o19 = 11</pre> </td></tr> <tr><td><pre>i20 : char S o20 = 0</pre> </td></tr> <tr><td><pre>i21 : char U o21 = 101</pre> </td></tr> </table> The presentation of the quotient ring can be obtained as a matrix with <a href="_presentation.html" title="presentation of a module or ring">presentation</a>.<table class="examples"><tr><td><pre>i22 : presentation S o22 = | x2-y y3-z | 1 2 o22 : Matrix (QQ[x, y, z]) <--- (QQ[x, y, z])</pre> </td></tr> </table> If a quotient ring has redundant defining relations, a new ring can be made in which these are eliminated with <a href="_trim.html" title="minimize generators and relations">trim</a>.<table class="examples"><tr><td><pre>i23 : R = ZZ/101[x,y,z]/(x-y,y-z,z-x) o23 = R o23 : QuotientRing</pre> </td></tr> <tr><td><pre>i24 : trim R ZZ ---[x, y, z] 101 o24 = -------------- (y - z, x - z) o24 : QuotientRing</pre> </td></tr> </table> For more information see <a href="___Quotient__Ring.html" title="the class of all quotient rings">QuotientRing</a>.</div> </div> </body> </html>