Disjointness and complements #
This file defines Disjoint, Codisjoint, and the IsCompl predicate.
Main declarations #
Disjoint x y: two elements of a lattice are disjoint if theirinfis the bottom element.Codisjoint x y: two elements of a lattice are codisjoint if theirjoinis the top element.IsCompl x y: In a bounded lattice, predicate for "xis a complement ofy". Note that in a non-distributive lattice, an element can have several complements.ComplementedLattice α: Typeclass stating that any element of a lattice has a complement.
Two elements of a lattice are disjoint if their inf is the bottom element. (This generalizes disjoint sets, viewed as members of the subset lattice.)
Note that we define this without reference to ⊓, as this allows us to talk about orders where
the infimum is not unique, or where implementing Inf would require additional Decidable
arguments.
Instances For
Two elements of a lattice are codisjoint if their sup is the top element.
Note that we define this without reference to ⊔, as this allows us to talk about orders where
the supremum is not unique, or where implementing Sup would require additional Decidable
arguments.
Instances For
Alias of symm_codisjoint.
Alias of symm_disjoint.
Alias of the forward direction of disjoint_self.
Two elements x and y are complements of each other if x ⊔ y = ⊤ and x ⊓ y = ⊥.
- disjoint : Disjoint x y
If
xandyare to be complementary in an order, they should be disjoint. - codisjoint : Codisjoint x y
If
xandyare to be complementary in an order, they should be codisjoint.
Instances For
An element is complemented if it has a complement.
Instances For
A complemented bounded lattice is one where every element has a (not necessarily unique) complement.
In a
ComplementedLattice, every element admits a complement.
Instances
The sublattice of complemented elements.
Equations
- Complementeds α = { a : α // IsComplemented a }
Instances For
Equations
- Complementeds.hasCoeT = { coe := Subtype.val }
Equations
Equations
- Complementeds.instInhabited = { default := ⊥ }
Equations
- Complementeds.instMax = { max := fun (a b : Complementeds α) => ⟨↑a ⊔ ↑b, ⋯⟩ }
Equations
- Complementeds.instMin = { min := fun (a b : Complementeds α) => ⟨↑a ⊓ ↑b, ⋯⟩ }