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)]