Lattice posets

class sage.categories.lattice_posets.LatticePosets[source]

Bases: Category

The category of lattices, i.e. partially ordered sets in which any two elements have a unique supremum (the elements’ least upper bound; called their join) and a unique infimum (greatest lower bound; called their meet).

EXAMPLES:

sage: LatticePosets()
Category of lattice posets
sage: LatticePosets().super_categories()
[Category of posets]
sage: LatticePosets().example()
NotImplemented
>>> from sage.all import *
>>> LatticePosets()
Category of lattice posets
>>> LatticePosets().super_categories()
[Category of posets]
>>> LatticePosets().example()
NotImplemented
class CongruenceUniform(base_category)[source]

Bases: CategoryWithAxiom

The category of congruence uniform lattices.

EXAMPLES:

sage: cat = FiniteLatticePosets().CongruenceUniform(); cat
Category of finite congruence uniform lattice posets
sage: cat.super_categories()
[Category of finite lattice posets,
 Category of congruence uniform lattice posets]
>>> from sage.all import *
>>> cat = FiniteLatticePosets().CongruenceUniform(); cat
Category of finite congruence uniform lattice posets
>>> cat.super_categories()
[Category of finite lattice posets,
 Category of congruence uniform lattice posets]
class ParentMethods[source]

Bases: object

is_congruence_uniform()[source]

Return whether self is a congruence uniform lattice.

EXAMPLES:

sage: posets.TamariLattice(4).is_congruence_uniform()
True
>>> from sage.all import *
>>> posets.TamariLattice(Integer(4)).is_congruence_uniform()
True
extra_super_categories()[source]

Return a list of the super categories of self.

This encode implications between properties.

EXAMPLES:

sage: FiniteLatticePosets().CongruenceUniform().super_categories()
[Category of finite lattice posets,
 Category of congruence uniform lattice posets]
>>> from sage.all import *
>>> FiniteLatticePosets().CongruenceUniform().super_categories()
[Category of finite lattice posets,
 Category of congruence uniform lattice posets]
class Distributive(base_category)[source]

Bases: CategoryWithAxiom

The category of distributive lattices.

EXAMPLES:

sage: cat = FiniteLatticePosets().Distributive(); cat
Category of finite distributive lattice posets

sage: cat.super_categories()
[Category of finite lattice posets,
 Category of distributive lattice posets]
>>> from sage.all import *
>>> cat = FiniteLatticePosets().Distributive(); cat
Category of finite distributive lattice posets

>>> cat.super_categories()
[Category of finite lattice posets,
 Category of distributive lattice posets]
class ParentMethods[source]

Bases: object

is_distributive()[source]

Return whether self is a distributive lattice.

EXAMPLES:

sage: P = posets.Crown(4).order_ideals_lattice()
sage: P.is_distributive()
True
>>> from sage.all import *
>>> P = posets.Crown(Integer(4)).order_ideals_lattice()
>>> P.is_distributive()
True
extra_super_categories()[source]

Return a list of the super categories of self.

This encode implications between properties.

EXAMPLES:

sage: FiniteLatticePosets().Distributive().super_categories()
[Category of finite lattice posets,
 Category of distributive lattice posets]
>>> from sage.all import *
>>> FiniteLatticePosets().Distributive().super_categories()
[Category of finite lattice posets,
 Category of distributive lattice posets]
class Extremal(base_category)[source]

Bases: CategoryWithAxiom

The category of extremal uniform lattices.

EXAMPLES:

sage: cat = FiniteLatticePosets().Extremal(); cat
Category of finite extremal lattice posets

sage: cat.super_categories()
[Category of finite lattice posets,
 Category of extremal lattice posets]
>>> from sage.all import *
>>> cat = FiniteLatticePosets().Extremal(); cat
Category of finite extremal lattice posets

>>> cat.super_categories()
[Category of finite lattice posets,
 Category of extremal lattice posets]
class ParentMethods[source]

Bases: object

is_extremal()[source]

Return whether self is an extremal lattice.

EXAMPLES:

sage: posets.TamariLattice(4).is_extremal()
True
>>> from sage.all import *
>>> posets.TamariLattice(Integer(4)).is_extremal()
True
Finite[source]

alias of FiniteLatticePosets

class ParentMethods[source]

Bases: object

join(x, y)[source]

Return the join of \(x\) and \(y\) in this lattice.

INPUT:

  • x, y – elements of self

EXAMPLES:

sage: D = LatticePoset((divisors(60), attrcall("divides")))             # needs sage.graphs sage.modules
sage: D.join( D(6), D(10) )                                             # needs sage.graphs sage.modules
30
>>> from sage.all import *
>>> D = LatticePoset((divisors(Integer(60)), attrcall("divides")))             # needs sage.graphs sage.modules
>>> D.join( D(Integer(6)), D(Integer(10)) )                                             # needs sage.graphs sage.modules
30
meet(x, y)[source]

Return the meet of \(x\) and \(y\) in this lattice.

INPUT:

  • x, y – elements of self

EXAMPLES:

sage: D = LatticePoset((divisors(30), attrcall("divides")))             # needs sage.graphs sage.modules
sage: D.meet( D(6), D(15) )                                             # needs sage.graphs sage.modules
3
>>> from sage.all import *
>>> D = LatticePoset((divisors(Integer(30)), attrcall("divides")))             # needs sage.graphs sage.modules
>>> D.meet( D(Integer(6)), D(Integer(15)) )                                             # needs sage.graphs sage.modules
3
class Semidistributive(base_category)[source]

Bases: CategoryWithAxiom

The category of semidistributive lattices.

EXAMPLES:

sage: cat = FiniteLatticePosets().Semidistributive(); cat
Category of finite semidistributive lattice posets

sage: cat.super_categories()
[Category of finite lattice posets,
 Category of semidistributive lattice posets]
>>> from sage.all import *
>>> cat = FiniteLatticePosets().Semidistributive(); cat
Category of finite semidistributive lattice posets

>>> cat.super_categories()
[Category of finite lattice posets,
 Category of semidistributive lattice posets]
class ParentMethods[source]

Bases: object

is_semidistributive()[source]

Return whether self is a semidistributive lattice.

EXAMPLES:

sage: posets.TamariLattice(4).is_semidistributive()
True
>>> from sage.all import *
>>> posets.TamariLattice(Integer(4)).is_semidistributive()
True
class Stone(base_category)[source]

Bases: CategoryWithAxiom

The category of Stone lattices.

EXAMPLES:

sage: cat = FiniteLatticePosets().Stone(); cat
Category of finite stone lattice posets

sage: cat.super_categories()
[Category of finite lattice posets,
 Category of stone lattice posets]
>>> from sage.all import *
>>> cat = FiniteLatticePosets().Stone(); cat
Category of finite stone lattice posets

>>> cat.super_categories()
[Category of finite lattice posets,
 Category of stone lattice posets]
class ParentMethods[source]

Bases: object

is_stone()[source]

Return whether self is a Stone lattice.

EXAMPLES:

sage: posets.DivisorLattice(12).is_stone()
True
>>> from sage.all import *
>>> posets.DivisorLattice(Integer(12)).is_stone()
True
extra_super_categories()[source]

Return a list of the super categories of self.

This encode implications between properties.

EXAMPLES:

sage: FiniteLatticePosets().Stone().super_categories()
[Category of finite lattice posets,
 Category of stone lattice posets]
>>> from sage.all import *
>>> FiniteLatticePosets().Stone().super_categories()
[Category of finite lattice posets,
 Category of stone lattice posets]
class SubcategoryMethods[source]

Bases: object

CongruenceUniform()[source]

A finite lattice \((L, \vee, \wedge)\) is congruence uniform if it can be constructed by a sequence of interval doublings starting with the lattice with one element.

EXAMPLES:

sage: P = posets.TamariLattice(2)
sage: P in FiniteLatticePosets().CongruenceUniform()
True
>>> from sage.all import *
>>> P = posets.TamariLattice(Integer(2))
>>> P in FiniteLatticePosets().CongruenceUniform()
True
Distributive()[source]

A lattice \((L, \vee, \wedge)\) is distributive if meet distributes over join: \(x \wedge (y \vee z) = (x \wedge y) \vee (x \wedge z)\) for every \(x,y,z \in L\).

From duality in lattices, it follows that then also join distributes over meet.

See Wikipedia article Distributive lattice.

EXAMPLES:

sage: P = posets.ChainPoset(2).order_ideals_lattice()
sage: P in FiniteLatticePosets().Distributive()
True
>>> from sage.all import *
>>> P = posets.ChainPoset(Integer(2)).order_ideals_lattice()
>>> P in FiniteLatticePosets().Distributive()
True
Extremal()[source]

A finite lattice \((L, \vee, \wedge)\) is extremal if if it has a chain of length \(n\) (containing \(n+1\) elements) and exactly \(n\) join-irreducibles and \(n\) meet-irreducibles.

This notion was defined by George Markowsky.

EXAMPLES:

sage: P = posets.TamariLattice(2)
sage: P in FiniteLatticePosets().Extremal()
True
>>> from sage.all import *
>>> P = posets.TamariLattice(Integer(2))
>>> P in FiniteLatticePosets().Extremal()
True
Semidistributive()[source]

A finite lattice \((L, \vee, \wedge)\) is semidistributive if it is both join-semidistributive and meet-semidistributive.

A finite lattice is join-semidistributive if for all elements \(e, x, y\) in the lattice we have

\[e \vee x = e \vee y \implies e \vee x = e \vee (x \wedge y)\]

Meet-semidistributivity is the dual property.

EXAMPLES:

sage: P = posets.TamariLattice(2)
sage: P in FiniteLatticePosets().Semidistributive()
True
>>> from sage.all import *
>>> P = posets.TamariLattice(Integer(2))
>>> P in FiniteLatticePosets().Semidistributive()
True
Stone()[source]

A Stone lattice \((L, \vee, \wedge)\) is a pseudo-complemented distributive lattice such that \(a^* \vee a^{**} = 1\).

See Wikipedia article Stone algebra.

EXAMPLES:

sage: P = posets.DivisorLattice(24)
sage: P in FiniteLatticePosets().Stone()
True
>>> from sage.all import *
>>> P = posets.DivisorLattice(Integer(24))
>>> P in FiniteLatticePosets().Stone()
True
Trim()[source]

A finite lattice \((L, \vee, \wedge)\) is trim if it is extremal and left modular.

This notion is defined in [Thom2006].

EXAMPLES:

sage: P = posets.TamariLattice(2)
sage: P in FiniteLatticePosets().Trim()
True
>>> from sage.all import *
>>> P = posets.TamariLattice(Integer(2))
>>> P in FiniteLatticePosets().Trim()
True
class Trim(base_category)[source]

Bases: CategoryWithAxiom

The category of trim uniform lattices.

EXAMPLES:

sage: cat = FiniteLatticePosets().Trim(); cat
Category of finite trim lattice posets
sage: cat.super_categories()
[Category of finite lattice posets,
 Category of trim lattice posets]
>>> from sage.all import *
>>> cat = FiniteLatticePosets().Trim(); cat
Category of finite trim lattice posets
>>> cat.super_categories()
[Category of finite lattice posets,
 Category of trim lattice posets]
class ParentMethods[source]

Bases: object

is_trim()[source]

Return whether self is a trim lattice.

EXAMPLES:

sage: posets.TamariLattice(4).is_trim()
True
>>> from sage.all import *
>>> posets.TamariLattice(Integer(4)).is_trim()
True
extra_super_categories()[source]

Return a list of the super categories of self.

This encode implications between properties.

EXAMPLES:

sage: FiniteLatticePosets().Trim().super_categories()
[Category of finite lattice posets,
 Category of trim lattice posets]
>>> from sage.all import *
>>> FiniteLatticePosets().Trim().super_categories()
[Category of finite lattice posets,
 Category of trim lattice posets]
super_categories()[source]

Return a list of the (immediate) super categories of self, as per Category.super_categories().

EXAMPLES:

sage: LatticePosets().super_categories()
[Category of posets]
>>> from sage.all import *
>>> LatticePosets().super_categories()
[Category of posets]