Skip to main content

Discrete Math with SageMath: Learn math with open-source software

Section 9.1 Lattices

Subsection 9.1.1 Definition

A lattice is a partially ordered set (poset) in which any two elements have a least upper bound (also known as join) and greatest lower bound (also known as meet).
In Sage, a lattice can be represented as a poset using the Poset() function. This function takes a tuple as its argument, where the first element is the set of elements in the poset, and the second element is a list of ordered pairs representing the partial order relations between those elements.
First, let’s define the lists of elements and relations we will use for the following examples:
Create a poset from a tuple of elements and relations.
The function is_lattice() determines whether the poset is a lattice.
We can also use LatticePoset() function to plot the lattice. The function Poset() can be used with any poset, even when the poset is not a lattice. The LatticePoset() function will raise an error if the poset is not a lattice.

Subsection 9.1.2 Join

The join of two elements in a lattice is the least upper bound of those elements.
To check if a poset is a join semi-lattice (every pair of elements has a least upper bound), we use is_join_semilattice() function.
We can also find the join for individual pairs using the join() function.

Subsection 9.1.3 Meet

The meet of two elements in a lattice is their greatest lower bound.
To check if a poset is a meet semi-lattice (every pair of elements has a greatest lower bound), we use is_meet_semilattice() function.
We can also find the meet for individual pairs using the meet() function.

Subsection 9.1.4 Divisor Lattice

The Sage DivisorLattice() function returns the divisor lattice of an integer.
The elements of the lattice are divisors of \(n\) and \(x < y\) in the lattice if \(x\) divides \(y\text{.}\)