Sophie

Sophie

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

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>pushForward(RingMap,Module)</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="___Pushforward__Computation.html">next</a> | <a href="_pseudo__Remainder.html">previous</a> | <a href="___Pushforward__Computation.html">forward</a> | <a href="_pseudo__Remainder.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>pushForward(RingMap,Module)</h1>
<div class="single"><h2>Synopsis</h2>
<ul><li><div class="list"><dl class="element"><dt class="heading">Usage: </dt><dd class="value"><div><tt>pushForward(F,M)</tt></div>
</dd></dl>
</div>
</li>
<li><span>Function: <a href="_push__Forward_lp__Ring__Map_cm__Module_rp.html" title="">pushForward</a></span></li>
<li><div class="single">Inputs:<ul><li><span><tt>F</tt>, <span>a <a href="___Ring__Map.html">ring map</a></span>, a ring map F: R --> S, graded</span></li>
<li><span><tt>M</tt>, <span>a <a href="___Module.html">module</a></span>, over S, graded</span></li>
</ul>
</div>
</li>
<li><div class="single">Outputs:<ul><li><span><span>a <a href="___Module.html">module</a></span>, M, considered as an R-module</span></li>
</ul>
</div>
</li>
<li><div class="single"><a href="_using_spfunctions_spwith_spoptional_spinputs.html">Optional inputs</a>:<ul><li><span><tt>MonomialOrder => </tt><span><span>default value Eliminate</span>, the type of monomial ordering to use in the computation, as keyword, either <a href="___Eliminate.html" title="elimination order">Eliminate</a>, <a href="___Product__Order.html" title="product ordering">ProductOrder</a>, or <a href="___Lex.html" title="lexicographical monomial order.">Lex</a></span></span></li>
<li><span><tt>UseHilbertFunction => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value true</span>, whether to use the Hilbert function as a hint for the Gröbner basis computation, if <tt>M</tt> and <tt>F</tt> are homogeneous</span></span></li>
<li><span><tt>StopBeforeComputation => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value false</span>, see <a href="_gb.html" title="compute a Gröbner basis">gb(..., StopBeforeComputation => ...)</a></span></span></li>
<li><span><tt>DegreeLimit => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value {}</span>, see <a href="_gb.html" title="compute a Gröbner basis">gb(..., DegreeLimit => ...)</a></span></span></li>
<li><span><tt>PairLimit => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value infinity</span>, see <a href="_gb.html" title="compute a Gröbner basis">gb(..., PairLimit => ...)</a></span></span></li>
</ul>
</div>
</li>
</ul>
</div>
<div class="single"><h2>Description</h2>
<div>Currently, <tt>R</tt> and <tt>S</tt> must both be polynomial rings over the same base field.<p/>
This function first checks to see whether M will be a finitely generated R-module via F.  If not, an error message describing the codimension of M/(vars of S)M is given (this is equal to the dimension of R if and only if M is a finitely generated R-module.<p/>
Assuming that it is, the push forward <tt>F_*(M)</tt> is computed.  This is done by first finding a presentation for <tt>M</tt> in terms of a set of elements that generates <tt>M</tt> as an <tt>S</tt>-module, and then applying the routine <a href="_coimage.html" title="coimage of a map">coimage</a> to a map whose target is <tt>M</tt> and whose source is a free module over <tt>R</tt>.<h2>Example: The Auslander-Buchsbaum formula</h2>
Let's illustrate the Auslander-Buchsbaum formula.  First construct some rings and make a module of projective dimension 2.<table class="examples"><tr><td><pre>i1 : R4 = ZZ/32003[a..d];</pre>
</td></tr>
<tr><td><pre>i2 : R5 = ZZ/32003[a..e];</pre>
</td></tr>
<tr><td><pre>i3 : R6 = ZZ/32003[a..f];</pre>
</td></tr>
<tr><td><pre>i4 : M = coker genericMatrix(R6,a,2,3)

o4 = cokernel | a c e |
              | b d f |

                              2
o4 : R6-module, quotient of R6</pre>
</td></tr>
<tr><td><pre>i5 : pdim M

o5 = 2</pre>
</td></tr>
</table>
Create ring maps.<table class="examples"><tr><td><pre>i6 : G = map(R6,R5,{a+b+c+d+e+f,b,c,d,e})

o6 = map(R6,R5,{a + b + c + d + e + f, b, c, d, e})

o6 : RingMap R6 &lt;--- R5</pre>
</td></tr>
<tr><td><pre>i7 : F = map(R5,R4,random(R5^1, R5^{4:-1}))

o7 = map(R5,R4,{- 2829a - 1435b + 8058c + 9689d + 14723e, 12865a - 3926b - 12267c - 11130d - 15042e, 8553a - 9311b - 13007c - 12446d - 9173e, 2800a + 3068b - 10799c - 7772d - 8215e})

o7 : RingMap R5 &lt;--- R4</pre>
</td></tr>
</table>
The module M, when thought of as an R5 or R4 module, has the same depth, but since depth M + pdim M = dim ring, the projective dimension will drop to 1, respectively 0, for these two rings.<table class="examples"><tr><td><pre>i8 : P = pushForward(G,M)

o8 = cokernel | c -de               |
              | d bc-ad+bd+cd+d2+de |

                              2
o8 : R5-module, quotient of R5</pre>
</td></tr>
<tr><td><pre>i9 : pdim P

o9 = 1</pre>
</td></tr>
<tr><td><pre>i10 : Q = pushForward(F,P)

        3
o10 = R4

o10 : R4-module, free, degrees {0, 1, 0}</pre>
</td></tr>
<tr><td><pre>i11 : pdim Q

o11 = 0</pre>
</td></tr>
</table>
<h2>Example: generic projection of a homogeneous coordinate ring</h2>
We compute the pushforward N of the homogeneous coordinate ring M of the twisted cubic curve in P^3.<table class="examples"><tr><td><pre>i12 : P3 = QQ[a..d];</pre>
</td></tr>
<tr><td><pre>i13 : M = comodule monomialCurveIdeal(P3,{1,2,3})

o13 = cokernel | c2-bd bc-ad b2-ac |

                               1
o13 : P3-module, quotient of P3</pre>
</td></tr>
</table>
The result is a module with the same codimension, degree and genus as the twisted cubic, but the support is a cubic in the plane, necessarily having one node.<table class="examples"><tr><td><pre>i14 : P2 = QQ[a,b,c];</pre>
</td></tr>
<tr><td><pre>i15 : F = map(P3,P2,random(P3^1, P3^{-1,-1,-1}))

                           5    10   6    1    3     3   1    5    5    1
o15 = map(P3,P2,{4a + 6b + -c + --d, -a + -b + -c + --d, -a + -b + -c + -d})
                           7     9   7    2    5    10   2    9    7    6

o15 : RingMap P3 &lt;--- P2</pre>
</td></tr>
<tr><td><pre>i16 : N = pushForward(F,M)

o16 = cokernel {0} | 30779930429955ab-131800438279650b2-66374160751755ac+158853407152860bc+223880299534440c2 2638279751139a2+182813941470300b2-29957171223834ac-584649608404680bc+535814803151856c2 16254779874687636083792271648927000b3-78707410788008924789026176600237900b2c+279947730366138663179680606940250ac2+127509160069495706614246839452113800bc2-71413271842960346782498089153332400c3                              0                                                                                                                                                                        |
               {1} | -19941099352965a+148580137757380b-136111547698731c                                      -15094700977359a+70556279211950b-25254142964124c                                       120175710355802816491444299167535a2-1442129616974558298205614904363215ab+1126556210065667747771421622059650b2+2233769573129702969190510834676434ac-2440197088624604283293124623314440bc-2144305087505625664481300960634072c2 37759287645a3-614804300955a2b+5603021144700ab2-26169340550500b3+548063491788a2c-10812992256630abc+90638470295100b2c+3519714763242ac2-105794899065000bc2+48285683500752c3 |

                               2
o16 : P2-module, quotient of P2</pre>
</td></tr>
<tr><td><pre>i17 : hilbertPolynomial M

o17 = - 2*P  + 3*P
           0      1

o17 : ProjectiveHilbertPolynomial</pre>
</td></tr>
<tr><td><pre>i18 : hilbertPolynomial N

o18 = - 2*P  + 3*P
           0      1

o18 : ProjectiveHilbertPolynomial</pre>
</td></tr>
<tr><td><pre>i19 : ann N

                        3                2                    2  
o19 = ideal(37759287645a  - 614804300955a b + 5603021144700a*b  -
      -----------------------------------------------------------------------
                     3                2                         
      26169340550500b  + 548063491788a c - 10812992256630a*b*c +
      -----------------------------------------------------------------------
                     2                    2                     2  
      90638470295100b c + 3519714763242a*c  - 105794899065000b*c  +
      -----------------------------------------------------------------------
                     3
      48285683500752c )

o19 : Ideal of P2</pre>
</td></tr>
</table>
Note: these examples are from the original Macaulay script by David Eisenbud.</div>
</div>
<div class="single"><h2>Caveat</h2>
<div>The module M must be homogeneous, as must R, S, and f.  If you need this function in more general situations, please write it and send it to the Macaulay2 authors, or ask them to write it!</div>
</div>
</div>
</body>
</html>