lattice package:numhask

The combination of two semi lattices makes a lattice if the absorption law holds: see Absorption Law and Lattice
Absorption: a \/ (a /\ b) == a /\ (a \/ b) == a
A join-semilattice with an identity element bottom for \/.
x \/ bottom == bottom
A meet-semilattice with an identity element top for /\.
x /\ top == top
A algebraic structure with element joins: See Semilattice
Associativity: x \/ (y \/ z) == (x \/ y) \/ z
Commutativity: x \/ y == y \/ x
Idempotency:   x \/ x == x
A algebraic structure with element meets: See Semilattice
Associativity: x /\ (y /\ z) == (x /\ y) /\ z
Commutativity: x /\ y == y /\ x
Idempotency:   x /\ x == x
Lattices with both bounds
x /\ bottom == x
x \/ top = x