# Finite lattice posets¶

class sage.categories.finite_lattice_posets.FiniteLatticePosets(base_category)

The category of finite lattices, i.e. finite partially ordered sets which are also lattices.

EXAMPLES:

sage: FiniteLatticePosets()
Category of finite lattice posets
sage: FiniteLatticePosets().super_categories()
[Category of lattice posets, Category of finite posets]
sage: FiniteLatticePosets().example()
NotImplemented

class ParentMethods
irreducibles_poset()

Return the poset of meet- or join-irreducibles of the lattice.

A join-irreducible element of a lattice is an element with exactly one lower cover. Dually a meet-irreducible element has exactly one upper cover.

This is the smallest poset with completion by cuts being isomorphic to the lattice. As a special case this returns one-element poset from one-element lattice.

EXAMPLES:

sage: L = LatticePoset({1: [2, 3, 4], 2: [5, 6], 3: [5],
....:                   4: [6], 5: [9, 7], 6: [9, 8], 7: [10],
....:                   8: [10], 9: [10], 10: [11]})
sage: L_ = L.irreducibles_poset()
sage: sorted(L_)
[2, 3, 4, 7, 8, 9, 10, 11]
sage: L_.completion_by_cuts().is_isomorphic(L)
True

is_lattice_morphism(f, codomain)

Return whether f is a morphism of posets from self to codomain.

A map $$f : P \to Q$$ is a poset morphism if

$x \leq y \Rightarrow f(x) \leq f(y)$

for all $$x,y \in P$$.

INPUT:

• f – a function from self to codomain
• codomain – a lattice

EXAMPLES:

We build the boolean lattice of $$\{2,2,3\}$$ and the lattice of divisors of $$60$$, and check that the map $$b \mapsto 5 \prod_{x\in b} x$$ is a morphism of lattices:

sage: D = LatticePoset((divisors(60), attrcall("divides")))
sage: B = LatticePoset((Subsets([2,2,3]), attrcall("issubset")))
sage: def f(b): return D(5*prod(b))
sage: B.is_lattice_morphism(f, D)
True


We construct the boolean lattice $$B_2$$:

sage: B = posets.BooleanLattice(2)
sage: B.cover_relations()
[[0, 1], [0, 2], [1, 3], [2, 3]]


And the same lattice with new top and bottom elements numbered respectively $$-1$$ and $$3$$:

sage: L = LatticePoset(DiGraph({-1:[0], 0:[1,2], 1:[3], 2:[3],3:[4]}))
sage: L.cover_relations()
[[-1, 0], [0, 1], [0, 2], [1, 3], [2, 3], [3, 4]]

sage: f = { B(0): L(0), B(1): L(1), B(2): L(2), B(3): L(3) }.__getitem__
sage: B.is_lattice_morphism(f, L)
True

sage: f = { B(0): L(-1),B(1): L(1), B(2): L(2), B(3): L(3) }.__getitem__
sage: B.is_lattice_morphism(f, L)
False

sage: f = { B(0): L(0), B(1): L(1), B(2): L(2), B(3): L(4) }.__getitem__
sage: B.is_lattice_morphism(f, L)
False

join_irreducibles()

Return the join-irreducible elements of this finite lattice.

A join-irreducible element of self is an element $$x$$ that is not minimal and that can not be written as the join of two elements different from $$x$$.

EXAMPLES:

sage: L = LatticePoset({0:[1,2],1:[3],2:[3,4],3:[5],4:[5]})
sage: L.join_irreducibles()
[1, 2, 4]

join_irreducibles_poset()

Return the poset of join-irreducible elements of this finite lattice.

A join-irreducible element of self is an element $$x$$ that is not minimal and can not be written as the join of two elements different from $$x$$.

EXAMPLES:

sage: L = LatticePoset({0:[1,2,3],1:[4],2:[4],3:[4]})
sage: L.join_irreducibles_poset()
Finite poset containing 3 elements

meet_irreducibles()

Return the meet-irreducible elements of this finite lattice.

A meet-irreducible element of self is an element $$x$$ that is not maximal and that can not be written as the meet of two elements different from $$x$$.

EXAMPLES:

sage: L = LatticePoset({0:[1,2],1:[3],2:[3,4],3:[5],4:[5]})
sage: L.meet_irreducibles()
[1, 3, 4]

meet_irreducibles_poset()

Return the poset of join-irreducible elements of this finite lattice.

A meet-irreducible element of self is an element $$x$$ that is not maximal and can not be written as the meet of two elements different from $$x$$.

EXAMPLES:

sage: L = LatticePoset({0:[1,2,3],1:[4],2:[4],3:[4]})
sage: L.join_irreducibles_poset()
Finite poset containing 3 elements