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

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

- Function: poincareN
- Usage:
    `poincareN C`
- Inputs:
  - C, a complex,
- Outputs:
  - a ring element,

## 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

- Basic invariants and properties -- information about accessing basic features
- poincare(Complex) -- assemble degrees of a chain complex into a polynomial
- betti -- display or modify a Betti diagram

## Ways to use this method:

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

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Complexes/ChainComplexDoc.m2:4316:0.