<?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>submodules and quotients</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="_subquotient_spmodules.html">next</a> | <a href="_matrices_spto_spand_spfrom_spmodules.html">previous</a> | <a href="_subquotient_spmodules.html">forward</a> | <a href="_matrices_spto_spand_spfrom_spmodules.html">backward</a> | <a href="_modules.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="_modules.html" title="">modules</a> > <a href="_submodules_spand_spquotients.html" title="">submodules and quotients</a></div> <hr/> <div><h1>submodules and quotients</h1> <div><h2>submodules</h2> We can create submodules by using standard mathematical notation, keeping in mind that the generators of a module <tt>M</tt> are denoted by <tt>M_0, M_1</tt>, etc.<table class="examples"><tr><td><pre>i1 : R = QQ[x,y,z];</pre> </td></tr> <tr><td><pre>i2 : M = R^3 3 o2 = R o2 : R-module, free</pre> </td></tr> <tr><td><pre>i3 : I = ideal(x^2,y^2-x*z) 2 2 o3 = ideal (x , y - x*z) o3 : Ideal of R</pre> </td></tr> </table> Here are some examples of submodules of <tt>M</tt>.<table class="examples"><tr><td><pre>i4 : I*M o4 = image | x2 0 0 y2-xz 0 0 | | 0 x2 0 0 y2-xz 0 | | 0 0 x2 0 0 y2-xz | 3 o4 : R-module, submodule of R</pre> </td></tr> <tr><td><pre>i5 : R*M_0 o5 = image | 1 | | 0 | | 0 | 3 o5 : R-module, submodule of R</pre> </td></tr> <tr><td><pre>i6 : I*M_1 o6 = image | 0 0 | | x2 y2-xz | | 0 0 | 3 o6 : R-module, submodule of R</pre> </td></tr> <tr><td><pre>i7 : J = I*M_1 + R*y^5*M_1 + R*M_2 o7 = image | 0 0 0 0 | | x2 y2-xz y5 0 | | 0 0 0 1 | 3 o7 : R-module, submodule of R</pre> </td></tr> </table> To determine if one submodule is contained in the other, use <a href="_is__Subset_lp__Module_cm__Module_rp.html" title="whether one object is a subset of another">isSubset(Module,Module)</a>.<table class="examples"><tr><td><pre>i8 : isSubset(I*M,M) o8 = true</pre> </td></tr> <tr><td><pre>i9 : isSubset((x^3-x)*M,x*M) o9 = true</pre> </td></tr> </table> Another way to construct submodules is to take the kernel or image of a matrix.<table class="examples"><tr><td><pre>i10 : F = matrix{{x,y,z}} o10 = | x y z | 1 3 o10 : Matrix R <--- R</pre> </td></tr> <tr><td><pre>i11 : image F o11 = image | x y z | 1 o11 : R-module, submodule of R</pre> </td></tr> <tr><td><pre>i12 : kernel F o12 = image {1} | -y 0 -z | {1} | x -z 0 | {1} | 0 y x | 3 o12 : R-module, submodule of R</pre> </td></tr> </table> The module <tt>M</tt> does not need to be a free module. We will see examples below.<h2>quotients</h2> If N is a submodule of M, construct the quotient using <a href="___Module_sp_sl_sp__Module.html" title="quotient module">Module / Module</a>.<table class="examples"><tr><td><pre>i13 : F = R^3 3 o13 = R o13 : R-module, free</pre> </td></tr> <tr><td><pre>i14 : F/(x*F+y*F+R*F_2) o14 = cokernel | x 0 0 y 0 0 0 | | 0 x 0 0 y 0 0 | | 0 0 x 0 0 y 1 | 3 o14 : R-module, quotient of R</pre> </td></tr> </table> When constructing M/N, it is not necessary that M be a free module, or a quotient of a free module. In this case, we obtain a subquotient module, which we describe below.</div> </div> </body> </html>