Bounded lattice homomorphisms #
This file defines bounded lattice homomorphisms.
We use the DFunLike design, so each type of morphisms has a companion typeclass which is meant to
be satisfied by itself and all stricter types.
Types of morphisms #
SupBotHom: Finitary supremum homomorphisms. Maps which preserve⊔and⊥.InfTopHom: Finitary infimum homomorphisms. Maps which preserve⊓and⊤.BoundedLatticeHom: Bounded lattice homomorphisms. Maps which preserve⊤,⊥,⊔and⊓.
Typeclasses #
TODO #
Do we need more intersections between BotHom, TopHom and lattice homomorphisms?
The type of bounded lattice homomorphisms from α to β.
- toFun : α → β
A
BoundedLatticeHompreserves the top element.Do not use this directly. Use
map_topinstead.A
BoundedLatticeHompreserves the bottom element.Do not use this directly. Use
map_botinstead.
Instances For
SupBotHomClass F α β states that F is a type of finitary supremum-preserving morphisms.
You should extend this class when you extend SupBotHom.
A
SupBotHomClassmorphism preserves the bottom element.
Instances
InfTopHomClass F α β states that F is a type of finitary infimum-preserving morphisms.
You should extend this class when you extend SupBotHom.
An
InfTopHomClassmorphism preserves the top element.
Instances
BoundedLatticeHomClass F α β states that F is a type of bounded lattice morphisms.
You should extend this class when you extend BoundedLatticeHom.
A
BoundedLatticeHomClassmorphism preserves the top element.A
BoundedLatticeHomClassmorphism preserves the bottom element.
Instances
Special case of map_compl for Boolean algebras.
Special case of map_sdiff for Boolean algebras.
Special case of map_symmDiff for Boolean algebras.
Equations
- One or more equations did not get rendered due to their size.
Finitary supremum homomorphisms #
Equations
- SupBotHom.instInhabited α = { default := SupBotHom.id α }
Equations
- One or more equations did not get rendered due to their size.
Equations
- SupBotHom.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : SupBotHom α β) => ⇑f) ⋯ ⋯
Subtype.val as a SupBotHom.
Equations
- SupBotHom.subtypeVal Pbot Psup = { toSupHom := SupHom.subtypeVal Psup, map_bot' := ⋯ }
Instances For
Finitary infimum homomorphisms #
Equations
- InfTopHom.instInhabited α = { default := InfTopHom.id α }
Equations
- One or more equations did not get rendered due to their size.
Equations
- InfTopHom.instSemilatticeInf = Function.Injective.semilatticeInf (fun (f : InfTopHom α β) => ⇑f) ⋯ ⋯
Subtype.val as an InfTopHom.
Equations
- InfTopHom.subtypeVal Ptop Pinf = { toInfHom := InfHom.subtypeVal Pinf, map_top' := ⋯ }
Instances For
Bounded lattice homomorphisms #
Reinterpret a BoundedLatticeHom as a SupBotHom.
Equations
- f.toSupBotHom = { toSupHom := f.toSupHom, map_bot' := ⋯ }
Instances For
Reinterpret a BoundedLatticeHom as an InfTopHom.
Equations
- f.toInfTopHom = { toFun := f.toFun, map_inf' := ⋯, map_top' := ⋯ }
Instances For
Reinterpret a BoundedLatticeHom as a BoundedOrderHom.
Equations
- f.toBoundedOrderHom = { toFun := f.toFun, monotone' := ⋯, map_top' := ⋯, map_bot' := ⋯ }
Instances For
Equations
- BoundedLatticeHom.instFunLike = { coe := fun (f : BoundedLatticeHom α β) => f.toFun, coe_injective' := ⋯ }
Copy of a BoundedLatticeHom with a new toFun equal to the old one. Useful to fix
definitional equalities.
Instances For
id as a BoundedLatticeHom.
Equations
- BoundedLatticeHom.id α = { toLatticeHom := LatticeHom.id α, map_top' := ⋯, map_bot' := ⋯ }
Instances For
Equations
- BoundedLatticeHom.instInhabited α = { default := BoundedLatticeHom.id α }
Composition of BoundedLatticeHoms as a BoundedLatticeHom.
Instances For
Subtype.val as a BoundedLatticeHom.
Equations
- BoundedLatticeHom.subtypeVal Pbot Ptop Psup Pinf = { toLatticeHom := LatticeHom.subtypeVal Psup Pinf, map_top' := ⋯, map_bot' := ⋯ }
Instances For
Dual homs #
Reinterpret a bounded lattice homomorphism as a bounded lattice homomorphism between the dual bounded lattices.
Equations
- One or more equations did not get rendered due to their size.