The filtration of $P$ is a partitioning $F$ of the vertices such that $F_0$ is the set of minimal elements of $P$, $F_1$ is the set of minimal elements of $P - F_0$, and so forth.
i1 : P = poset {{a,b}, {b,c}, {c,d}, {a,e}, {e,d}}; |
i2 : filtration P o2 = {{a}, {e, b}, {c}, {d}} o2 : List |
The filtration of a ranked poset is the same as the ranking of the poset.
i3 : B = booleanLattice 3; |
i4 : F = filtration B o4 = {{000}, {001, 010, 100}, {011, 101, 110}, {111}} o4 : List |
i5 : R = rankPoset B o5 = {{000}, {001, 010, 100}, {011, 101, 110}, {111}} o5 : List |
i6 : sort \ F === sort \ R o6 = true |
The flatten of the filtration is a linear extension of the poset.
i7 : member(flatten F, linearExtensions B) o7 = true |
This method was ported from John Stembridge's Maple package available at http://www.math.lsa.umich.edu/~jrs/maple.html#posets.
The object filtration is a method function.