Complete lattice homomorphisms #
This file defines frame homomorphisms and complete 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 #
sSupHom: Maps which preserve⨆.sInfHom: Maps which preserve⨅.FrameHom: Frame homomorphisms. Maps which preserve⨆,⊓and⊤.CompleteLatticeHom: Complete lattice homomorphisms. Maps which preserve⨆and⨅.
Typeclasses #
Concrete homs #
CompleteLatticeHom.setPreimage:Set.preimageas a complete lattice homomorphism.
TODO #
Frame homs are Heyting homs.
The type of ⨆-preserving functions from α to β.
- toFun : α → β
The underlying function of a sSupHom.
The proposition that a
sSupHomcommutes with arbitrary suprema/joins.
Instances For
The type of frame homomorphisms from α to β. They preserve finite meets and arbitrary joins.
- toFun : α → β
The proposition that frame homomorphisms commute with arbitrary suprema/joins.
Instances For
The proposition that frame homomorphisms commute with arbitrary suprema/joins.
The type of complete lattice homomorphisms from α to β.
- toFun : α → β
The proposition that complete lattice homomorphism commutes with arbitrary suprema/joins.
Instances For
The proposition that complete lattice homomorphism commutes with arbitrary suprema/joins.
sSupHomClass F α β states that F is a type of ⨆-preserving morphisms.
You should extend this class when you extend sSupHom.
The proposition that members of
sSupHomClasss commute with arbitrary suprema/joins.
Instances
The proposition that members of sSupHomClasss commute with arbitrary suprema/joins.
sInfHomClass F α β states that F is a type of ⨅-preserving morphisms.
You should extend this class when you extend sInfHom.
The proposition that members of
sInfHomClasss commute with arbitrary infima/meets.
Instances
The proposition that members of sInfHomClasss commute with arbitrary infima/meets.
FrameHomClass F α β states that F is a type of frame morphisms. They preserve ⊓ and ⨆.
You should extend this class when you extend FrameHom.
The proposition that members of
FrameHomClasscommute with arbitrary suprema/joins.
Instances
The proposition that members of FrameHomClass commute with arbitrary suprema/joins.
CompleteLatticeHomClass F α β states that F is a type of complete lattice morphisms.
You should extend this class when you extend CompleteLatticeHom.
The proposition that members of
CompleteLatticeHomClasscommute with arbitrary suprema/joins.
Instances
The proposition that members of CompleteLatticeHomClass commute with arbitrary
suprema/joins.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Reinterpret an order isomorphism as a morphism of complete lattices.
Equations
- f.toCompleteLatticeHom = { toFun := ⇑f, map_sInf' := ⋯, map_sSup' := ⋯ }
Instances For
Equations
- instCoeTCFrameHomOfFrameHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_inf' := ⋯, map_top' := ⋯, map_sSup' := ⋯ } }
Equations
- instCoeTCCompleteLatticeHomOfCompleteLatticeHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_sInf' := ⋯, map_sSup' := ⋯ } }
Supremum homomorphisms #
Equations
- ⋯ = ⋯
Equations
- sSupHom.id α = { toFun := id, map_sSup' := ⋯ }
Instances For
Equations
- sSupHom.instInhabited α = { default := sSupHom.id α }
Equations
- sSupHom.instPartialOrder = PartialOrder.lift (fun (f : sSupHom α β) => ⇑f) ⋯
Equations
- sSupHom.instOrderBot = OrderBot.mk ⋯
Infimum homomorphisms #
Equations
- ⋯ = ⋯
Equations
- sInfHom.id α = { toFun := id, map_sInf' := ⋯ }
Instances For
Equations
- sInfHom.instInhabited α = { default := sInfHom.id α }
Equations
- sInfHom.instPartialOrder = PartialOrder.lift (fun (f : sInfHom α β) => ⇑f) ⋯
Equations
- sInfHom.instOrderTop = OrderTop.mk ⋯
Frame homomorphisms #
Equations
- ⋯ = ⋯
Reinterpret a FrameHom as a LatticeHom.
Equations
- f.toLatticeHom = { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯ }
Instances For
Copy of a FrameHom with a new toFun equal to the old one. Useful to fix definitional
equalities.
Equations
- f.copy f' h = let __src := { toFun := ⇑f, map_sSup' := ⋯ }.copy f' h; { toInfTopHom := f.copy f' h, map_sSup' := ⋯ }
Instances For
Equations
- FrameHom.id α = let __src := sSupHom.id α; { toInfTopHom := InfTopHom.id α, map_sSup' := ⋯ }
Instances For
Equations
- FrameHom.instInhabited α = { default := FrameHom.id α }
Composition of FrameHoms as a FrameHom.
Equations
- f.comp g = let __src := { toFun := ⇑f, map_sSup' := ⋯ }.comp { toFun := ⇑g, map_sSup' := ⋯ }; { toInfTopHom := f.comp g.toInfTopHom, map_sSup' := ⋯ }
Instances For
Equations
- FrameHom.instPartialOrder = PartialOrder.lift (fun (f : FrameHom α β) => ⇑f) ⋯
Complete lattice homomorphisms #
Equations
- CompleteLatticeHom.instFunLike = { coe := fun (f : CompleteLatticeHom α β) => f.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Reinterpret a CompleteLatticeHom as a sSupHom.
Equations
- f.tosSupHom = { toFun := ⇑f, map_sSup' := ⋯ }
Instances For
Reinterpret a CompleteLatticeHom as a BoundedLatticeHom.
Equations
- f.toBoundedLatticeHom = let __src := { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯ }; { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯, map_top' := ⋯, map_bot' := ⋯ }
Instances For
Copy of a CompleteLatticeHom with a new toFun equal to the old one. Useful to fix
definitional equalities.
Equations
- f.copy f' h = let __src := f.tosSupHom.copy f' h; { tosInfHom := f.copy f' h, map_sSup' := ⋯ }
Instances For
id as a CompleteLatticeHom.
Equations
- CompleteLatticeHom.id α = let __src := sSupHom.id α; let __src := sInfHom.id α; { toFun := id, map_sInf' := ⋯, map_sSup' := ⋯ }
Instances For
Equations
- CompleteLatticeHom.instInhabited α = { default := CompleteLatticeHom.id α }
Composition of CompleteLatticeHoms as a CompleteLatticeHom.
Equations
- f.comp g = let __src := f.tosSupHom.comp g.tosSupHom; { tosInfHom := f.comp g.tosInfHom, map_sSup' := ⋯ }
Instances For
Dual homs #
Reinterpret a complete lattice homomorphism as a complete lattice homomorphism between the dual lattices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Concrete homs #
Set.preimage as a complete lattice homomorphism.
See also sSupHom.setImage.
Equations
- CompleteLatticeHom.setPreimage f = { toFun := Set.preimage f, map_sInf' := ⋯, map_sSup' := ⋯ }
Instances For
Using Set.image, a function between types yields a sSupHom between their lattices of
subsets.
See also CompleteLatticeHom.setPreimage.
Equations
- sSupHom.setImage f = { toFun := Set.image f, map_sSup' := ⋯ }
Instances For
An equivalence of types yields an order isomorphism between their lattices of subsets.
Equations
Instances For
The map (a, b) ↦ a ⊔ b as a sSupHom.
Instances For
The map (a, b) ↦ a ⊓ b as an sInfHom.