\(\nu\)-Tamari lattice#
A class of the \(\nu\)-Tamari lattice, and \((\delta,\nu)\)-Tamari lattice (or alt \(\nu\)-Tamari lattices), see [PRV2017] and [CC2023] for details.
These lattices depend on a parameter \(\nu\) where \(\nu\) is a path of North and East steps. The alt \(\nu\)-Tamari lattice depends on an additional parameter \(\delta\), which is an increment vector with respect to \(\nu\).
The elements are nu-Dyck paths
which are weakly above \(\nu\).
To use the provided functionality, you should import \(\nu\)-Tamari lattices by typing:
sage: from sage.combinat.nu_tamari_lattice import NuTamariLattice, AltNuTamariLattice
Then,
sage: NuTamariLattice([1,1,1,0,0,1,1,0])
Finite lattice containing 6 elements
sage: NuTamariLattice([0,0,0,1,1,0,0,1])
Finite lattice containing 40 elements
sage: AltNuTamariLattice([0,0,0,1,1,0,0,1])
Finite lattice containing 40 elements
sage: AltNuTamariLattice([0,0,0,1,1,0,0,1], [0,1,0])
Finite lattice containing 40 elements
The classical Tamari lattices and the Generalized Tamari lattices are special cases of this construction and are also available with this poset:
sage: NuTamariLattice([1,0,1,0,1,0])
Finite lattice containing 5 elements
sage: NuTamariLattice([1,0,0,1,0,0,1,0,0])
Finite lattice containing 12 elements
See also
For more detailed information see NuTamariLattice()
and
AltNuTamariLattice()
. For more
information on the standard Tamari lattice see
sage.combinat.tamari_lattices.TamariLattice()
,
sage.combinat.tamari_lattices.GeneralizedTamariLattice()
AUTHORS:
Aram Dermenjian (2020-09-26): initial version
Clément Chenevière (2024-02-01): added the alt \(\nu\)-Tamari lattices
- sage.combinat.nu_tamari_lattice.AltNuTamariLattice(nu, delta=None)#
Return the \((\delta,\nu)\)-Tamari lattice (or alt \(\nu\)-Tamari lattice).
For more information, see [CC2023].
The path \(\nu\) is a path of North steps (represented as \(1\) s) and East steps (represented as \(0\) s).
The vector \(\delta = (\delta_1, \dots, \delta_n)\) is an increment vector with respect to the path \(\nu\), that is to say \(\delta_i \leq \nu_i\), where \(\nu_i\) is the number of \(0\) s following the \(i\)-th \(1\) of \(\nu\). If not provided, \(\delta\) is set by default to produce the classical \(\nu\)-Tamari lattice.
INPUT:
\(\nu\) – a list of 0s and 1s or a string of 0s and 1s.
\(\delta\) – a list of nonnegative integers.
OUTPUT:
a finite lattice
EXAMPLES:
sage: from sage.combinat.nu_tamari_lattice import AltNuTamariLattice, NuTamariLattice sage: AltNuTamariLattice('01001', [0, 0]) Finite lattice containing 7 elements sage: AltNuTamariLattice('01001', [1, 0]) Finite lattice containing 7 elements sage: AltNuTamariLattice('01001') == AltNuTamariLattice('01001', [2, 0]) True sage: nu = '00100100101'; P = AltNuTamariLattice(nu); Q = NuTamariLattice(nu); P == Q True
REFERENCES:
- sage.combinat.nu_tamari_lattice.NuTamariLattice(nu)#
Return the \(\nu\)-Tamari lattice.
INPUT:
\(\nu\) – a list of 0s and 1s or a string of 0s and 1s.
OUTPUT:
a finite lattice
The elements of the lattice are
nu-Dyck paths
weakly above \(\nu\).The usual Tamari lattice is the special case where \(\nu = (NE)^h\) where \(h\) is the height.
Other special cases give the \(m\)-Tamari lattices studied in [BMFPR].
EXAMPLES:
sage: from sage.combinat.nu_tamari_lattice import NuTamariLattice sage: NuTamariLattice([1,0,1,0,0,1,0]) Finite lattice containing 7 elements sage: NuTamariLattice([1,0,1,0,1,0]) Finite lattice containing 5 elements sage: NuTamariLattice([1,0,1,0,1,0,1,0]) Finite lattice containing 14 elements sage: NuTamariLattice([1,0,1,0,1,0,0,0,1]) Finite lattice containing 24 elements
- sage.combinat.nu_tamari_lattice.delta_swap(p, k, delta)#
Perform a covering move in the \((\delta,\nu)\)-Tamari lattice (or alt \(\nu\)-Tamari lattice, see [CC2023]).
The letter at position \(k\) is a North step of the \(\nu\)-Dyck word \(p\), and must be preceded by an East step.
The vector \(\delta = (\delta_1, \dots, \delta_n)\) is an increment vector with respect to the path \(\nu\), that is to say \(\delta_i \leq \nu_i\), where \(\nu_i\) is the number of East steps following the \(i\)-th North step of \(\nu\).
INPUT:
p
– a \(\nu\)-Dyck wordk
– an integer between \(0\) andp.length()-1
delta
– a list of nonnegative integers of lengthp.height()
OUTPUT:
a \(\nu\)-Dyck word
EXAMPLES:
sage: from sage.combinat.nu_tamari_lattice import delta_swap sage: delta_swap(NuDyckWord('0101', '0101'), 3, delta = [1, 0]) [0, 1, 1, 0] sage: delta_swap(NuDyckWord('1001110100', '0100010111'), 3, [3, 1, 0, 0, 0]) [1, 0, 1, 1, 1, 0, 0, 1, 0, 0] sage: delta_swap(NuDyckWord('10100101000', '01001000110'), 2, [2, 3, 0, 1]) [1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0] sage: delta_swap(NuDyckWord('10100101000', '01001000110'), 2, [1, 1, 0, 0]) [1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0]