Page 1 of 1

partial boundary matrix (homology of the pair)

Posted: 18 Jun 2025, 16:15
by Blissful1911
Hello!

I have a simplicial complex X and a subcomplex Y (that is not induced on a subset of the vertices of X). I would like to create the chain complex representing the homology of the pair (Y,X) and compute its homology. The i-th term of this chain complex is (for me) the vector space generated by the i-dimensional faces of X not belonging to Y. I do not see a function for this in the documentation, but I am new to Polymake so I may have missed it. Is this functionality already available?

As an alternative, I already wrote a function that goes through the faces of my X and returns true (or false) if they belong to Y (or not). To construct my complex, I would need to restrict the boundary maps of X to the subset of faces returning false. Is this possible? Or even better, since the boundary matrices of X are huge, it would be great if I could get the restriction without constructing the entire boundary map first.

More generally, I would also like to do this when I have a filtration X_i < X_(i+1) of X. The chain complexes associated to the pairs (X_i,X_(i+1)) would give me the zero page of the spectral sequence that computes the homology of X via the filtration. I noticed Polymake has a Filtration type and I was able to construct the filtration in a small case, but I do not know how to proceed from here. It seems like persistent_homology is the main method that applies to filtrations, but I do not know enough about persistent homology to say how it relates to what I am trying to do (if so, any pointers would be greatly appreciated!).

Thank you!

Re: partial boundary matrix (homology of the pair)

Posted: 19 Jun 2025, 09:06
by gawrilow

I have a simplicial complex X and a subcomplex Y (that is not induced on a subset of the vertices of X). I would like to create the chain complex representing the homology of the pair (Y,X) and compute its homology. The i-th term of this chain complex is (for me) the vector space generated by the i-dimensional faces of X not belonging to Y. I do not see a function for this in the documentation, but I am new to Polymake so I may have missed it. Is this functionality already available?

As an alternative, I already wrote a function that goes through the faces of my X and returns true (or false) if they belong to Y (or not). To construct my complex, I would need to restrict the boundary maps of X to the subset of faces returning false. Is this possible? Or even better, since the boundary matrices of X are huge, it would be great if I could get the restriction without constructing the entire boundary map first.
I might be wrong, but it seems you need to engage into a small tinkering. For the object type SimplicialComplex, define a `property SUBCOMPLEX : SimplicialComplex: multiple;` (For that, you can either edit one of the existing rulefiles in apps/topaz/rules or create a small private rulefile and include it at the beginning of your polymake session.) Create an instance of such subcomplex, initializing it with the faces of full complex filtered as you wish: ` $X_complex->add("SUBCOMPLEX", "sensible_name", INPUT_FACES => [ grep { !belongs_to_Y($_) } @{$X_complex->FACES} ]); `. Then you can ask for homologies and everything else provided for simplicial complexes: `$X_complex->SUBCOMPLEX("sensible_name")->HOMOLOGY` . If you want to map some properties of the subcomplex explicitly referring to individual vertices back into the full one (like CYCLES), you can use the property VERTEX_INDICES of the subcomplex (because vertices are always sequentially renumbered in every complex.)

Re: partial boundary matrix (homology of the pair)

Posted: 19 Jun 2025, 17:34
by Blissful1911
Thank you very much! I will look into this and follow up if I have any questions.