Let r be the ranking of P. Then P is upper semimodular if for every pair of vertices a and b, r(a) + r(b) ≥r(join(a,b)) + r(meet(a,b,)).
The n chain and the n booleanLattice are upper semimodular.
i1 : n = 4; |
i2 : isUpperSemimodular chain n o2 = true |
i3 : isUpperSemimodular booleanLattice n o3 = true |
The following lattice is not upper semimodular.
i4 : P = poset {{1, 2}, {1, 3}, {1, 4}, {2, 5}, {2, 6}, {3, 5}, {4, 6}, {5, 7}, {6, 7}}; |
i5 : isLattice P o5 = true |
i6 : isUpperSemimodular P o6 = false |
This method was ported from John Stembridge’s Maple package available at http://www.math.lsa.umich.edu/~jrs/maple.html#posets.