Question. Let $(C_\bullet,\partial)$ be a $\mathbb{Z}/2\mathbb{Z}$-chain complex generated by $a$, $b_1,b_2,b_3$, $c_1,c_2$ with gradings: $$|a|=2,|b_1|=|b_2|=|b_3|=1,|c_1|=|c_2|=0.$$ Which graded modules (polynomial) can be realized as (the Poincaré polynomial of) $H_\bullet(C_\bullet,\partial)$?

I can always do a case by case computation, but I am exhausted just thinking about it, as we know that: $$\begin{align}\partial a&\in\{0,b_1,b_2,b_3,b_1+b_2,b_1+b_3,b_2+b_3,b_1+b_2+b_3\},\\\partial b_1,\partial b_2,\partial b_3&\in\{0,c_1,c_2,c_1+c_2\},\\\partial c_1,\partial c_2&=0,\end{align}$$ there is $512$ different $\partial_i$, but some of them will not satisfy $\partial_i\circ\partial_i=0$.

  • Is there a clever way to carry on the computation?
  • Can a computer algebra software, as SageMath, solve my problem?

Any enlightenment will be greatly appreciated.

Context. I have a chain complex $(C_\bullet,\partial)$ coming from a geometric setting, for which I know $C_\bullet$ as a graded module (I am able to compute its generators and their grading), but whose boundary map $\partial$ is unknown to me (and I am actually interested in a lot of different boundary map on $C$).

I want to find all chain complex $(C_\bullet,\partial_i)$ and compute their homology, said explicitely:

  • the graded module $C_\bullet$ is fixed,
  • I look for endomorphisms $\partial_i$ with $\partial_i\colon C_\bullet\to C_{\bullet-1}$ and $\partial_i\circ\partial_i=0$,
  • I want to compute $H_\bullet(C_\bullet,\partial_i)=\ker(\partial_i)/\textrm{im}(\partial_i)$ as a graded module.

With sufficient partial information on the boundary map $\partial$, I hope to be able to compute the homology of $(C_\bullet,\partial)$ guessing which of the $H_\bullet(C_\bullet,\partial_i)$ it is.

Precise context. I want to compute all the mixed generating family homologies of the Hopf link with Maslov potential from the lower strand to the upper strand being $0,1,1,2$.

In general, it is really hard to compute the boundary map of the mixed generating family homology, as it basically involves knowing the gradient flow lines of a qualitatively constructed map and structural results on this homology are still to be discovered.


You can do it in SageMath as follows, if I understood it correctly:

poincare_polynomials = set([])
import itertools
for (a_to_b, b_to_c) in itertools.product(itertools.product(GF(2),repeat=3), itertools.product(GF(2),repeat=6)):
        C = ChainComplex({2: matrix(GF(2), 3, 1, a_to_b), 1: matrix(GF(2), 2, 3, b_to_c)}, degree=-1)
        #print C.homology(generators=True)
        #P_C = sum(C.free_module_rank(deg)*t^deg for deg in C.nonzero_degrees())
        P_H = sum(C.homology(deg).dimension()*t^deg for deg in C.nonzero_degrees())
        #print ((P_C - P_H)/(1+t)).full_simplify()
    except ValueError:
        # differentials not compatible
print poincare_polynomials

which outputs

set([0, 2*t + 2, t^2 + t, t^2 + 3*t + 2, t^2 + 2*t + 1, t + 1])

You can modify the code to get any additional information you want. See Chain complexes in the Sage reference manual.

  • 1
    $\begingroup$ Your code seems to do the job, the outputs match my expectation! It helps a lot, thank you! $\endgroup$ – C. Falcon Jan 26 at 23:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.