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 theirinf
is the bottom element.Codisjoint x y
: two elements of a lattice are codisjoint if theirjoin
is the top element.IsCompl x y
: In a bounded lattice, predicate for "x
is 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
Alias of the forward direction of disjoint_self
.
Alias of the forward direction of codisjoint_self
.
- disjoint : Disjoint x y
If
x
andy
are to be complementary in an order, they should be disjoint. - codisjoint : Codisjoint x y
If
x
andy
are to be complementary in an order, they should be codisjoint.
Two elements x
and y
are complements of each other if x ⊔ y = ⊤
and x ⊓ y = ⊥
.
Instances For
An element is complemented if it has a complement.
Equations
- IsComplemented a = ∃ b, IsCompl a b
Instances For
- exists_isCompl : ∀ (a : α), ∃ b, IsCompl a b
In a
ComplementedLattice
, every element admits a complement.
A complemented bounded lattice is one where every element has a (not necessarily unique) complement.
Instances
Equations
- One or more equations did not get rendered due to their size.
The sublattice of complemented elements.
Equations
- Complementeds α = { a // IsComplemented a }
Instances For
Equations
- Complementeds.hasCoeT = { coe := Subtype.val }
Equations
- Complementeds.instBoundedOrderComplementedsLeToLEToPreorderToPartialOrderToSemilatticeInfIsComplemented = Subtype.boundedOrder (_ : IsComplemented ⊥) (_ : IsComplemented ⊤)
Equations
- Complementeds.instSupComplementedsToLattice = { sup := fun a b => { val := ↑a ⊔ ↑b, property := (_ : IsComplemented (↑a ⊔ ↑b)) } }
Equations
- Complementeds.instInfComplementedsToLattice = { inf := fun a b => { val := ↑a ⊓ ↑b, property := (_ : IsComplemented (↑a ⊓ ↑b)) } }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.