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

## Synopsis

• Function: poincareN
• Usage:
poincareN C
• Inputs:
• C, ,
• Outputs:
• ,

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