poincare
poincare C -- encodes information about the degrees of basis elements
of a free chain complex in a polynomial.
poincare M -- the same information about the free resolution
of a module M.
The polynomial has a term (-1)^i T_0^(d_0) ... T_(n-1)^(d_(n-1)) in it
for each basis element of C_i with multi-degree {d_0,...,d_(n-1)}.
When the multi-degree has a single component, the term is
(-1)^i T^(d_0).
The variable T is defined in a hidden local scope, so will print out
as $T and not be directly accessible.
i1 : R = ZZ/101[x_0 .. x_3,y_0 .. y_3]
o1 = R
o1 : PolynomialRing |
i2 : m = matrix table (2, 2, (i,j) -> x_(i+2*j))
o2 = {0} | x_0 x_2 |
{0} | x_1 x_3 |
2 2
o2 : Matrix R <--- R |
i3 : n = matrix table (2, 2, (i,j) -> y_(i+2*j))
o3 = {0} | y_0 y_2 |
{0} | y_1 y_3 |
2 2
o3 : Matrix R <--- R |
i4 : f = flatten (m*n - n*m)
o4 = {0} | x_2y_1-x_1y_2 x_1y_0-x_0y_1+x_3y_1-x_1y_3 -x_2y_0+x_0y_2-x_3y_2+x_2y_3 -x_2y_1+x_1y_2 |
1 4
o4 : Matrix R <--- R |
i5 : poincare cokernel f
3 2
o5 = 2$T - 3$T + 1
o5 : ZZ[ZZ^1] |
(cokernel f).poincare = p -- inform the system that the Poincare
polynomial of the cokernel of f is p. This can speed the computation
of a Groebner basis of f.
i6 : R = ZZ/101[t_0 .. t_17]
o6 = R
o6 : PolynomialRing |
i7 : T = (degreesRing R)_0
o7 = $T
o7 : ZZ[ZZ^1] |
i8 : f = genericMatrix(R,t_0,3,6)
o8 = {0} | t_0 t_3 t_6 t_9 t_12 t_15 |
{0} | t_1 t_4 t_7 t_10 t_13 t_16 |
{0} | t_2 t_5 t_8 t_11 t_14 t_17 |
3 6
o8 : Matrix R <--- R |
i9 : (cokernel f).poincare = 3-6*T+15*T^2-20*T^3+15*T^4-6*T^5+T^6
6 5 4 3 2
o9 = $T - 6$T + 15$T - 20$T + 15$T - 6$T + 3
o9 : ZZ[ZZ^1] |
i10 : gb f
o10 = {0} | t_15 t_12 t_9 t_6 t_3 t_0 |
{0} | t_16 t_13 t_10 t_7 t_4 t_1 |
{0} | t_17 t_14 t_11 t_8 t_5 t_2 |
o10 : GroebnerBasis |
Keys used:



