next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Macaulay2Doc :: pushForward(RingMap,Module)

pushForward(RingMap,Module)

Synopsis

Description

Currently, R and S must both be polynomial rings over the same base field.

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.

Assuming that it is, the push forward F_*(M) is computed. This is done by first finding a presentation for M in terms of a set of elements that generates M as an S-module, and then applying the routine coimage to a map whose target is M and whose source is a free module over R.

Example: The Auslander-Buchsbaum formula

Let's illustrate the Auslander-Buchsbaum formula. First construct some rings and make a module of projective dimension 2.
i1 : R4 = ZZ/32003[a..d];
i2 : R5 = ZZ/32003[a..e];
i3 : R6 = ZZ/32003[a..f];
i4 : M = coker genericMatrix(R6,a,2,3)

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

                              2
o4 : R6-module, quotient of R6
i5 : pdim M

o5 = 2
Create ring maps.
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 <--- R5
i7 : F = map(R5,R4,random(R5^1, R5^{4:-1}))

o7 = map(R5,R4,{8686a + 4596b + 11861c + 11011d + 4379e, 6552a - 8453b + 10988c + 4273d + 11835e, 8653a - 10429b + 13776c + 14791d + 15790e, - 11244a - 5929b + 15414c + 9744d - 13811e})

o7 : RingMap R5 <--- R4
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.
i8 : P = pushForward(G,M)

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

                              2
o8 : R5-module, quotient of R5
i9 : pdim P

o9 = 1
i10 : Q = pushForward(F,P)

        3
o10 = R4

o10 : R4-module, free, degrees {0, 1, 0}
i11 : pdim Q

o11 = 0

Example: generic projection of a homogeneous coordinate ring

We compute the pushforward N of the homogeneous coordinate ring M of the twisted cubic curve in P^3.
i12 : P3 = QQ[a..d];
i13 : M = comodule monomialCurveIdeal(P3,{1,2,3})

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

                               1
o13 : P3-module, quotient of P3
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.
i14 : P2 = QQ[a,b,c];
i15 : F = map(P3,P2,random(P3^1, P3^{-1,-1,-1}))

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

o15 : RingMap P3 <--- P2
i16 : N = pushForward(F,M)

o16 = cokernel {0} | 306268465755413048175ab+942166304609048051400b2-31917635434226356462935ac+12299762292932230530120bc+2775315959414521210800c2 2756416191798717433575a2+7648764878950489627200b2-242980740624462905017485ac+93652057604612816343720bc+21106952126037949222800c2 663681375982742813837546763855099017908164430080000b3+67748285923593366262042478463165011379662231680224000b2c-2039289818413241240293362543070264146296846754590075820ac2+787562070439364713243305165651833023953333913711045440bc2+177321150141386469318457252316737234726208136178407300c3                                                        0                                                                                                                                                                                                                            |
               {1} | 34845546846159846485568a-16618921325776590246455b-987472564950665396961c                                                     264410540443558523547153a-127623947528476564700920b-5048396455480328913291c                                                      -6169942469449413218469693993050953780095427515817911a2+27125079059010936998522591766821068515993370189508352ab-11563228474291744845256921553818100903822568962936865b2+2227761568378760463695090289547146783979260128149229646ac-1059929230125505030281409510723126685758224889504243790bc-68138821810960909553045219296823383915060682448370572c2 2427555194978315391a3-3204494663555425464a2b+1427836461557170329ab2-173664909604796680b3-762254812941846030a2c-572720143744543410abc+266681086447325760b2c+2033672409793536120ac2-681461580113153280bc2-172664106799870980c3 |

                               2
o16 : P2-module, quotient of P2
i17 : hilbertPolynomial M

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

o17 : ProjectiveHilbertPolynomial
i18 : hilbertPolynomial N

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

o18 : ProjectiveHilbertPolynomial
i19 : ann N

                                3                       2   
o19 = ideal(2427555194978315391a  - 3204494663555425464a b +
      -----------------------------------------------------------------------
                            2                      3                      2 
      1427836461557170329a*b  - 173664909604796680b  - 762254812941846030a c
      -----------------------------------------------------------------------
                                                     2   
      - 572720143744543410a*b*c + 266681086447325760b c +
      -----------------------------------------------------------------------
                            2                        2  
      2033672409793536120a*c  - 681461580113153280b*c  -
      -----------------------------------------------------------------------
                         3
      172664106799870980c )

o19 : Ideal of P2
Note: these examples are from the original Macaulay script by David Eisenbud.

Caveat

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!