Obtaining a simplicial complex associated to a poset with the help of Sage
I want to associate to a finite poset a simplicial complex Δ(P) and study the homology(with coefficients in the rational numbers or a finite field) and the topological type of this simplicial complex using Sage. I have not yet used sage for this and wanted to ask whether there is an easy method to do this.
Let P be a a finite poset with at least two elements and for p∈P define two subsets as follows:
J(p):= { g∈P|p≰ } and I(p):= { g \in P | g \leq p }.
For a subset S of P (we view P also as set of its vertices) we then define
J(S):= \bigcap\limits_{p \in S}^{}{J(p)} and I(S):= \bigcup\limits_{p \in S}^{}{I(p)}.
We set J( \emptyset)=P, J(P)=\emptyset and I(\emptyset)=\emptyset, I(P)=P.
Then the simplicial complex \Delta(P) is defined as the set of all subsets S \subseteq P with J(S^c) \subseteq I(S^c), where fore a subset S \subseteq P we denote by S^c the complement of S in P.
For example when the poset P is a chain with n-elements then \Delta(P) should have topological type of the (n-2)-sphere.
I can obtain the sets J(p) and I(p) for elements but not for subsets in Sage, but I would think there is an easy trick.
Here is an example in Sage for a given poset P :
P=posets.BooleanLattice(2)
display(P)
p=P[2]
I=[u for u in P if P.is_lequal(u,p)]
J=[u for u in P if not P.is_lequal(p,u)]
display(I)
display(J)
Thanks for any help.
Please add the code you have so far, with an example P.
I added a small example for the Boolean lattice on how to obtain J(p) and I(p).