Definition of complete lattices #
This file contains the definition of complete lattices with suprema/infima of arbitrary sets.
Main definitions #
sSup
andsInf
are the supremum and the infimum of a set;iSup (f : ι → α)
andiInf (f : ι → α)
are indexed supremum and infimum of a function, defined assSup
andsInf
of the range of this function;- class
CompleteLattice
: a bounded lattice such thatsSup s
is always the least upper boundary ofs
andsInf s
is always the greatest lower boundary ofs
; - class
CompleteLinearOrder
: a linear ordered complete lattice.
Naming conventions #
In lemma names,
sSup
is calledsSup
sInf
is calledsInf
⨆ i, s i
is callediSup
⨅ i, s i
is callediInf
⨆ i j, s i j
is callediSup₂
. This is aniSup
inside aniSup
.⨅ i j, s i j
is callediInf₂
. This is aniInf
inside aniInf
.⨆ i ∈ s, t i
is calledbiSup
for "boundediSup
". This is the special case ofiSup₂
wherej : i ∈ s
.⨅ i ∈ s, t i
is calledbiInf
for "boundediInf
". This is the special case ofiInf₂
wherej : i ∈ s
.
Notation #
Equations
- OrderDual.supSet α = { sSup := sInf }
Equations
- OrderDual.infSet α = { sInf := sSup }
Note that we rarely use CompleteSemilatticeSup
(in fact, any such object is always a CompleteLattice
, so it's usually best to start there).
Nevertheless it is sometimes a useful intermediate step in constructions.
Any element of a set is less than the set supremum.
Any upper bound is more than the set supremum.
Instances
Alias of the forward direction of isLUB_iff_sSup_eq
.
Note that we rarely use CompleteSemilatticeInf
(in fact, any such object is always a CompleteLattice
, so it's usually best to start there).
Nevertheless it is sometimes a useful intermediate step in constructions.
Any element of a set is more than the set infimum.
Any lower bound is less than the set infimum.
Instances
Alias of the forward direction of isGLB_iff_sInf_eq
.
A complete lattice is a bounded lattice which has suprema and infima for every subset.
- sup : α → α → α
- inf : α → α → α
- top : α
- bot : α
Any element is less than the top one.
Any element is more than the bottom one.
Instances
Create a CompleteLattice
from a PartialOrder
and InfSet
that returns the greatest lower bound of a set. Usually this constructor provides
poor definitional equalities. If other fields are known explicitly, they should be
provided; for example, if inf
is known explicitly, construct the CompleteLattice
instance as
instance : CompleteLattice my_T where
inf := better_inf
le_inf := ...
inf_le_right := ...
inf_le_left := ...
-- don't care to fix sup, sSup, bot, top
__ := completeLatticeOfInf my_T _
Equations
- completeLatticeOfInf α isGLB_sInf = CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Any CompleteSemilatticeInf
is in fact a CompleteLattice
.
Note that this construction has bad definitional properties:
see the doc-string on completeLatticeOfInf
.
Equations
Instances For
Create a CompleteLattice
from a PartialOrder
and SupSet
that returns the least upper bound of a set. Usually this constructor provides
poor definitional equalities. If other fields are known explicitly, they should be
provided; for example, if inf
is known explicitly, construct the CompleteLattice
instance as
instance : CompleteLattice my_T where
inf := better_inf
le_inf := ...
inf_le_right := ...
inf_le_left := ...
-- don't care to fix sup, sInf, bot, top
__ := completeLatticeOfSup my_T _
Equations
- completeLatticeOfSup α isLUB_sSup = CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Any CompleteSemilatticeSup
is in fact a CompleteLattice
.
Note that this construction has bad definitional properties:
see the doc-string on completeLatticeOfSup
.
Equations
Instances For
A complete linear order is a linear order whose lattice structure is complete.
- sup : α → α → α
- inf : α → α → α
- top : α
- bot : α
- himp : α → α → α
- compl : α → α
- sdiff : α → α → α
- hnot : α → α
A linear order is total.
- decidableLE : DecidableLE α
In a linearly ordered type, we assume the order relations are all decidable.
- decidableEq : DecidableEq α
In a linearly ordered type, we assume the order relations are all decidable.
- decidableLT : DecidableLT α
In a linearly ordered type, we assume the order relations are all decidable.
Instances
Equations
- OrderDual.instCompleteLattice = CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯