# poincareN -- assemble degrees into polynomial

## Synopsis

• Usage:
poincareN C
• Inputs:
• C, ,
• Outputs:
• , in the Laurent polynomial ring degrees ring, whose variables correspond to the degrees of the ambient ring

## Description

This function encodes information about the degrees of basis elements of a free chain complex in a polynomial. The polynomial has terms $S^i T_0^{d_0} \cdots T_{n-1}^{d_{n-1}}$ in it for each basis element of C_i with multi-degree {d_0,...,d_(n-1)}.

 i1 : R = ZZ/101[a,b,c, Degrees=>{1,1,2}]; i2 : C = res cokernel vars R 1 3 3 1 o2 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o2 : ChainComplex i3 : betti C 0 1 2 3 o3 = total: 1 3 3 1 0: 1 2 1 . 1: . 1 2 1 o3 : BettiTally i4 : p = poincareN C 2 2 2 2 3 3 4 o4 = 1 + 2S*T + S*T + S T + 2S T + S T 0 0 0 0 0 o4 : ZZ[S, T ] 0

Setting the S variable to -1 gives the polynomial calculated by poincare(ChainComplex).

 i5 : sub(p, {S => -1}) 3 4 o5 = 1 - 2T + 2T - T 0 0 0 o5 : ZZ[S, T ] 0 i6 : poincare C 3 4 o6 = 1 - 2T + 2T - T o6 : ZZ[T]

Conversely, setting it to 1 gives the same polynomial for the direct sum of components of the complex.

 i7 : sub(p, {S => 1}) 2 3 4 o7 = 1 + 2T + 2T + 2T + T 0 0 0 0 o7 : ZZ[S, T ] 0 i8 : poincare sum C 2 3 4 o8 = 1 + 2T + 2T + 2T + T o8 : ZZ[T]