Lattices of sashes¶
These lattices were introduced by S. Law in [Law2014]. They are lattice quotients of the weak order on the symmetric groups. This implies that they are congruence-uniform.
There is a lattice of sashes \(\Sigma_n\) for every integer \(n \geq 1\).
The underlying set of \(\Sigma_n\) is the set of words of length \(n\)
in the letters □, ▨ and ■■ of respective lengths \(1,1\) and \(2\).
The cardinalities of the lattices \(\Sigma_n\) are therefore given by the Pell numbers (OEIS sequence A000129).
The implementation describes sashes as tuples of strings.
This file also implements the polytopes known as pellytopes, and their fans. The skeletons of pellytopes are isomorphic to the undirected Hasse diagrams of the lattices of sashes.
REFERENCES:
- sage.combinat.posets.sashes.cover_relations(s)[source]¶
Iterate over the cover relations of the given sash.
INPUT:
s– sash, as a tuple of strings
EXAMPLES:
sage: from sage.combinat.posets.sashes import cover_relations sage: s = ('□', '▨', '▨') sage: [''.join(t) for t in cover_relations(s)] ['□□▨', '□▨□'] sage: s = ('□', '■■', '▨') sage: [''.join(t) for t in cover_relations(s)] ['□□□▨', '□■■□']
>>> from sage.all import * >>> from sage.combinat.posets.sashes import cover_relations >>> s = ('□', '▨', '▨') >>> [''.join(t) for t in cover_relations(s)] ['□□▨', '□▨□'] >>> s = ('□', '■■', '▨') >>> [''.join(t) for t in cover_relations(s)] ['□□□▨', '□■■□']
from sage.combinat.posets.sashes import cover_relations s = ('□', '▨', '▨') [''.join(t) for t in cover_relations(s)] s = ('□', '■■', '▨') [''.join(t) for t in cover_relations(s)]
- sage.combinat.posets.sashes.lattice_of_sashes(n)[source]¶
Return the lattice of sashes of length
n.INPUT:
n– positive integer
EXAMPLES:
sage: L = posets.Sashes(4); L Finite lattice containing 29 elements sage: L.hasse_diagram().to_undirected().is_regular(4) True
>>> from sage.all import * >>> L = posets.Sashes(Integer(4)); L Finite lattice containing 29 elements >>> L.hasse_diagram().to_undirected().is_regular(Integer(4)) True
L = posets.Sashes(4); L L.hasse_diagram().to_undirected().is_regular(4)
- sage.combinat.posets.sashes.pellytope(n)[source]¶
Return the pellytope of dimension
n.This is defined as a Minkowski sum of the unit volume \(n\) dimensional hypercube in the positive orthant and the triangles with vertices \((0, e_i, e_i + e_{i+1})\) for all \(1 \leq i < n\).
INPUT:
n– integer
EXAMPLES:
sage: # needs sage.geometry.polyhedron sage: P3 = polytopes.pellytope(3); P3 A 3-dimensional polyhedron in ZZ^3 defined as the convex hull of 12 vertices sage: P3.f_vector() (1, 12, 18, 8, 1)
>>> from sage.all import * >>> # needs sage.geometry.polyhedron >>> P3 = polytopes.pellytope(Integer(3)); P3 A 3-dimensional polyhedron in ZZ^3 defined as the convex hull of 12 vertices >>> P3.f_vector() (1, 12, 18, 8, 1)
# needs sage.geometry.polyhedron P3 = polytopes.pellytope(3); P3 P3.f_vector()
REFERENCES:
- sage.combinat.posets.sashes.pellytope_fan()[source]¶
Return the fan of the pellytope of dimension
n.This is defined by induction.
INPUT:
n– integer
EXAMPLES:
sage: from sage.combinat.posets.sashes import pellytope_fan sage: pellytope_fan(3).f_vector() # needs sage.geometry.polyhedron (1, 8, 18, 12)
>>> from sage.all import * >>> from sage.combinat.posets.sashes import pellytope_fan >>> pellytope_fan(Integer(3)).f_vector() # needs sage.geometry.polyhedron (1, 8, 18, 12)
from sage.combinat.posets.sashes import pellytope_fan pellytope_fan(3).f_vector() # needs sage.geometry.polyhedron
REFERENCES:
- sage.combinat.posets.sashes.sashes(n)[source]¶
Iterate over the sashes of length
n.INPUT:
n– nonnegative integer
EXAMPLES:
sage: from sage.combinat.posets.sashes import sashes sage: [''.join(s) for s in sashes(2)] ['□□', '□▨', '▨□', '▨▨', '■■']
>>> from sage.all import * >>> from sage.combinat.posets.sashes import sashes >>> [''.join(s) for s in sashes(Integer(2))] ['□□', '□▨', '▨□', '▨▨', '■■']
from sage.combinat.posets.sashes import sashes [''.join(s) for s in sashes(2)]