Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 3553

Macaulay2-1.3.1-8.fc15.i686.rpm

<?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>Hilbert functions and free resolutions -- including degree and betti numbers</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_basis.html">next</a> | <a href="_right_spmodules_spor_spleft_spmodules_qu.html">previous</a> | <a href="_basis.html">forward</a> | <a href="_right_spmodules_spor_spleft_spmodules_qu.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="___Hilbert_spfunctions_spand_spfree_spresolutions.html" title="including degree and betti numbers">Hilbert functions and free resolutions</a></div>
<hr/>
<div><h1>Hilbert functions and free resolutions -- including degree and betti numbers</h1>
<div>In this section, we give examples of common operations involving modules.  Throughout this section, we suppose that the base ring <tt>R</tt> is graded, with each variable having degree one, and that  <tt>M</tt> is a graded <tt>R</tt>-module.  If the ring is not graded, or is multi-graded, or if <tt>M</tt> is not graded, some of these functions still work, but care must be taken in interpreting the output.  Here, we just consider the standard grading case.<h2>checking homogeneity</h2>
Let's start by making a module over a ring with 18 variables<table class="examples"><tr><td><pre>i1 : R = ZZ/32003[vars(0..17)];</pre>
</td></tr>
<tr><td><pre>i2 : M = coker genericMatrix(R,a,3,6)

o2 = cokernel | a d g j m p |
              | b e h k n q |
              | c f i l o r |

                            3
o2 : R-module, quotient of R</pre>
</td></tr>
</table>
Use <a href="_is__Homogeneous.html" title="whether something is homogeneous (graded)">isHomogeneous</a> to check whether a given module is graded.<table class="examples"><tr><td><pre>i3 : isHomogeneous M

o3 = true</pre>
</td></tr>
</table>
<h2>codimension, degree, and sectional arithmetic genera</h2>
Use <a href="_codim_lp__Module_rp.html" title="codimension of the support of a module">codim(Module)</a>, <a href="_degree_lp__Module_rp.html" title="">degree(Module)</a>, and <a href="_genera_lp__Coherent__Sheaf_rp.html" title="list of the successive linear sectional arithmetic genera">genera(Module)</a> for some basic numeric information about a module.<table class="examples"><tr><td><pre>i4 : codim M

o4 = 4</pre>
</td></tr>
<tr><td><pre>i5 : degree M

o5 = 15</pre>
</td></tr>
<tr><td><pre>i6 : genera M

o6 = {-2, 2, -2, 2, -2, 2, -2, 2, -2, 2, -2, 2, 4, 14}

o6 : List</pre>
</td></tr>
</table>
The last number in the list of genera is the degree minus one.  The second to last number is the genus of the generic linear section curve, ..., and the first number is the arithmetic genus<h2>the Hilbert series</h2>
The Hilbert series (<a href="_hilbert__Series_lp__Module_rp.html" title="compute the Hilbert series of the module">hilbertSeries(Module)</a>) of <tt>M</tt> is by definition the formal power series <tt>H(t) = sum(d in ZZ) dim(M_d) t^d</tt>.  This is a rational function with denominator <tt>(1-t)^n</tt>, where <tt>n</tt> is the number of variables in the polynomial ring.  The numerator of this rational function is called the poincare polynomial, and is obtained by the <a href="_poincare_lp__Module_rp.html" title="assemble degrees of an module into a polynomial">poincare(Module)</a> function.<table class="examples"><tr><td><pre>i7 : poincare M

                 4      5     6
o7 = 3 - 6T + 15T  - 18T  + 6T

o7 : ZZ[T]</pre>
</td></tr>
<tr><td><pre>i8 : hf = hilbertSeries M

                 4      5     6
     3 - 6T + 15T  - 18T  + 6T
o8 = --------------------------
                     18
              (1 - T)

o8 : Expression of class Divide</pre>
</td></tr>
</table>
<p/>
It is often useful to divide the poincare polynomial by <tt>(1-t)</tt> as many times as possible.  This can be done by using <a href="_reduce__Hilbert.html" title="reduce a Hilbert series expression">reduceHilbert</a>:<table class="examples"><tr><td><pre>i9 : reduceHilbert hf

                2
     3 + 6T + 6T
o9 = ------------
              14
       (1 - T)

o9 : Expression of class Divide</pre>
</td></tr>
</table>
<table class="examples"><tr><td><pre>i10 : poincare' = (M) -> (
              H := poincare M;
              t := (ring H)_0;  -- The variable t above
              while H % (1-t) == 0 do H = H // (1-t);
              H)

o10 = poincare'

o10 : FunctionClosure</pre>
</td></tr>
<tr><td><pre>i11 : poincare' M

                 2
o11 = 3 + 6T + 6T

o11 : ZZ[T]</pre>
</td></tr>
</table>
<h2>free resolutions</h2>
The minimal free resolution <tt>C</tt> is computed using <a href="_resolution_lp__Module_rp.html" title="compute a projective resolution of a module">resolution(Module)</a>.  The specific matrices are obtained by indexing <tt>C.dd</tt>.<table class="examples"><tr><td><pre>i12 : C = resolution M

       3      6      15      18      6
o12 = R  &lt;-- R  &lt;-- R   &lt;-- R   &lt;-- R  &lt;-- 0
                                            
      0      1      2       3       4      5

o12 : ChainComplex</pre>
</td></tr>
<tr><td><pre>i13 : C.dd_3

o13 = {4} | m  -n o  p  -q r  0  0  0  0  0  0  0  0  0  0  0  0  |
      {4} | -j k  -l 0  0  0  p  0  0  0  -q r  0  0  0  0  0  0  |
      {4} | g  -h i  0  0  0  0  p  0  0  0  0  -q 0  0  r  0  0  |
      {4} | -d e  -f 0  0  0  0  0  p  0  0  0  0  -q 0  0  r  0  |
      {4} | a  -b c  0  0  0  0  0  0  p  0  0  0  0  -q 0  0  r  |
      {4} | 0  0  0  -j k  -l -m 0  0  0  n  -o 0  0  0  0  0  0  |
      {4} | 0  0  0  g  -h i  0  -m 0  0  0  0  n  0  0  -o 0  0  |
      {4} | 0  0  0  -d e  -f 0  0  -m 0  0  0  0  n  0  0  -o 0  |
      {4} | 0  0  0  a  -b c  0  0  0  -m 0  0  0  0  n  0  0  -o |
      {4} | 0  0  0  0  0  0  g  j  0  0  -h i  -k 0  0  l  0  0  |
      {4} | 0  0  0  0  0  0  -d 0  j  0  e  -f 0  -k 0  0  l  0  |
      {4} | 0  0  0  0  0  0  a  0  0  j  -b c  0  0  -k 0  0  l  |
      {4} | 0  0  0  0  0  0  0  -d -g 0  0  0  e  h  0  -f -i 0  |
      {4} | 0  0  0  0  0  0  0  a  0  -g 0  0  -b 0  h  c  0  -i |
      {4} | 0  0  0  0  0  0  0  0  a  d  0  0  0  -b -e 0  c  f  |

              15       18
o13 : Matrix R   &lt;--- R</pre>
</td></tr>
</table>
For more information about chain complexes and resolutions, see <a href="_chain_spcomplexes.html" title="">chain complexes</a> and <a href="_computing_spresolutions.html" title="">computing resolutions</a>.<h2>betti numbers</h2>
Use <a href="_betti_lp__Graded__Module_rp.html">betti</a> to display the graded betti numbers of <tt>M</tt>.<table class="examples"><tr><td><pre>i14 : betti C

             0 1  2  3 4
o14 = total: 3 6 15 18 6
          0: 3 6  .  . .
          1: . .  .  . .
          2: . . 15 18 6

o14 : BettiTally</pre>
</td></tr>
</table>
This table should be interpreted as follows: the number in the <tt>i</tt>-th row and <tt>j</tt>-th column (indices starting at 0), is the number of <tt>j</tt>-th syzygies in degree <tt>i+j</tt>.  In the above example, there are 15 second syzygies of degree 4, and the entries of the maps <tt>CC.d_1, CC.d_3, CC.d_4</tt> are all linear.</div>
</div>
</body>
</html>