Definition of complete lattices #
This file contains the definition of complete lattices with suprema/infima of arbitrary sets.
Main definitions #
sSupandsInfare the supremum and the infimum of a set;iSup (f : ι → α)andiInf (f : ι → α)are indexed supremum and infimum of a function, defined assSupandsInfof the range of this function;- class
CompleteLattice: a bounded lattice such thatsSup sis always the least upper boundary ofsandsInf sis always the greatest lower boundary ofs; - class
CompleteLinearOrder: a linear ordered complete lattice.
Naming conventions #
In lemma names,
sSupis calledsSupsInfis calledsInf⨆ i, s iis callediSup⨅ i, s iis callediInf⨆ i j, s i jis callediSup₂. This is aniSupinside aniSup.⨅ i j, s i jis callediInf₂. This is aniInfinside aniInf.⨆ i ∈ s, t iis calledbiSupfor "boundediSup". This is the special case ofiSup₂wherej : i ∈ s.⨅ i ∈ s, t iis calledbiInffor "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 ⋯ ⋯ ⋯ ⋯ ⋯ ⋯