Macaulay2 » Documentation
Packages » Complexes :: poincareN(Complex)
next | previous | forward | backward | up | index | toc

poincareN(Complex) -- assemble degrees of a chain complex into a polynomial

Synopsis

Description

This method encodes information about the internal and homological degrees of the generators of each term in a chain complex. It returns an element in the ring of Laurent polynomials whose monomials correspond to the degrees of the monomials in the underlying ring of $C$, together with a variable to record the homological degree. When the $i$-th term $C_i$ of the complex $C$ is generated by elements of degree $d_{i,1}, d_{i,2}, \dotsc$, this Laurent polynomial is $\sum_i (-1)^i \sum_j S^i T^{d_{i,j}}$, where we use multi-index notation $T^d = T_0^{d_0} T_1^{d_1} \dotsb T_r^{d_r}$.

i1 : R = ZZ/32003[a..f];
i2 : K = koszulComplex vars R

      1      6      15      20      15      6      1
o2 = R  <-- R  <-- R   <-- R   <-- R   <-- R  <-- R
                                                   
     0      1      2       3       4       5      6

o2 : Complex
i3 : betti K

            0 1  2  3  4 5 6
o3 = total: 1 6 15 20 15 6 1
         0: 1 6 15 20 15 6 1

o3 : BettiTally
i4 : p = poincareN K

                    2 2      3 3      4 4     5 5    6 6
o4 = 1 + 6S*T  + 15S T  + 20S T  + 15S T  + 6S T  + S T
             0        0        0        0       0      0

o4 : ZZ[S, T ]
            0
i5 : factor p

               6
o5 = (1 + S*T )
             0

o5 : Expression of class Product
i6 : C = freeResolution ideal(a*b, b*c*d, c*d*e^2)

      1      3      2
o6 = R  <-- R  <-- R
                    
     0      1      2

o6 : Complex
i7 : betti C

            0 1 2
o7 = total: 1 3 2
         0: 1 . .
         1: . 1 .
         2: . 1 1
         3: . 1 1

o7 : BettiTally
i8 : poincareN C

            2      3      4    2 4    2 5
o8 = 1 + S*T  + S*T  + S*T  + S T  + S T
            0      0      0      0      0

o8 : ZZ[S, T ]
            0

Since the number of variables in the degrees ring is equal to the rank of the grading group, the Poincare polynomial may have more than one variable.

i9 : S = ZZ/101[x,y,z, DegreeRank => 3];
i10 : L = koszulComplex vars S

       1      3      3      1
o10 = S  <-- S  <-- S  <-- S
                            
      0      1      2      3

o10 : Complex
i11 : poincareN L

                                2        2        2        3
o11 = 1 + S*T  + S*T  + S*T  + S T T  + S T T  + S T T  + S T T T
             2      1      0      1 2      0 2      0 1      0 1 2

o11 : ZZ[S, T ..T ]
             0   2

If the terms in the complex are not free, then this method uses just the degrees of the generators of each term.

i12 : D = C ** coker vars R

o12 = cokernel | a b c d e f | <-- cokernel {2} | a b c d e f 0 0 0 0 0 0 0 0 0 0 0 0 | <-- cokernel {4} | a b c d e f 0 0 0 0 0 0 |
                                            {3} | 0 0 0 0 0 0 a b c d e f 0 0 0 0 0 0 |              {5} | 0 0 0 0 0 0 a b c d e f |
      0                                     {4} | 0 0 0 0 0 0 0 0 0 0 0 0 a b c d e f |      
                                                                                            2
                                   1

o12 : Complex
i13 : poincareN D

             2      3      4    2 4    2 5
o13 = 1 + S*T  + S*T  + S*T  + S T  + S T
             0      0      0      0      0

o13 : ZZ[S, T ]
             0
i14 : betti D

             0 1 2
o14 = total: 1 3 2
          0: 1 . .
          1: . 1 .
          2: . 1 1
          3: . 1 1

o14 : BettiTally

See also

Ways to use this method: