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.preimage
as 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
sSupHom
commutes 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 type of complete lattice homomorphisms from α
to β
.
- toFun : α → β
The proposition that complete lattice homomorphism commutes with arbitrary suprema/joins.
Instances For
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
sSupHomClass
s commute with arbitrary suprema/joins.
Instances
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
sInfHomClass
s commute with arbitrary infima/meets.
Instances
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
FrameHomClass
commute with arbitrary suprema/joins.
Instances
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
CompleteLatticeHomClass
commute with arbitrary suprema/joins.
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Reinterpret an order isomorphism as a morphism of complete lattices.
Equations
- OrderIso.toCompleteLatticeHom f = { tosInfHom := { toFun := ⇑f, map_sInf' := ⋯ }, map_sSup' := ⋯ }
Instances For
Equations
- instCoeTCFrameHom = { coe := fun (f : F) => { toInfTopHom := { toInfHom := { toFun := ⇑f, map_inf' := ⋯ }, map_top' := ⋯ }, map_sSup' := ⋯ } }
Equations
- instCoeTCCompleteLatticeHom = { coe := fun (f : F) => { tosInfHom := { toFun := ⇑f, map_sInf' := ⋯ }, map_sSup' := ⋯ } }
Supremum homomorphisms #
Equations
- ⋯ = ⋯
Equations
- sSupHom.id α = { toFun := id, map_sSup' := ⋯ }
Instances For
Equations
- sSupHom.instInhabitedSSupHom α = { default := sSupHom.id α }
Equations
- sSupHom.instPartialOrderSSupHomToSupSet = PartialOrder.lift (fun (f : sSupHom α β) => ⇑f) ⋯
Equations
- sSupHom.instOrderBotSSupHomToSupSetToLEToPreorderInstPartialOrderSSupHomToSupSet = OrderBot.mk ⋯
Infimum homomorphisms #
Equations
- ⋯ = ⋯
Equations
- sInfHom.id α = { toFun := id, map_sInf' := ⋯ }
Instances For
Equations
- sInfHom.instInhabitedSInfHom α = { default := sInfHom.id α }
Equations
- sInfHom.instPartialOrderSInfHomToInfSet = PartialOrder.lift (fun (f : sInfHom α β) => ⇑f) ⋯
Equations
- sInfHom.instOrderTopSInfHomToInfSetToLEToPreorderInstPartialOrderSInfHomToInfSet = OrderTop.mk ⋯
Frame homomorphisms #
Equations
- ⋯ = ⋯
Reinterpret a FrameHom
as a LatticeHom
.
Equations
- FrameHom.toLatticeHom f = { toSupHom := { 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
- FrameHom.copy f f' h = let __src := sSupHom.copy { toFun := ⇑f, map_sSup' := ⋯ } f' h; { toInfTopHom := InfTopHom.copy f.toInfTopHom f' h, map_sSup' := ⋯ }
Instances For
Equations
- FrameHom.id α = let __src := sSupHom.id α; { toInfTopHom := InfTopHom.id α, map_sSup' := ⋯ }
Instances For
Equations
- FrameHom.instInhabitedFrameHom α = { default := FrameHom.id α }
Composition of FrameHom
s as a FrameHom
.
Equations
- FrameHom.comp f g = let __src := sSupHom.comp { toFun := ⇑f, map_sSup' := ⋯ } { toFun := ⇑g, map_sSup' := ⋯ }; { toInfTopHom := InfTopHom.comp f.toInfTopHom g.toInfTopHom, map_sSup' := ⋯ }
Instances For
Equations
- FrameHom.instPartialOrderFrameHom = PartialOrder.lift (fun (f : FrameHom α β) => ⇑f) ⋯
Complete lattice homomorphisms #
Equations
- CompleteLatticeHom.instFunLikeCompleteLatticeHom = { coe := fun (f : CompleteLatticeHom α β) => f.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Reinterpret a CompleteLatticeHom
as a sSupHom
.
Equations
- CompleteLatticeHom.tosSupHom f = { toFun := ⇑f, map_sSup' := ⋯ }
Instances For
Reinterpret a CompleteLatticeHom
as a BoundedLatticeHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Copy of a CompleteLatticeHom
with a new toFun
equal to the old one. Useful to fix
definitional equalities.
Equations
- CompleteLatticeHom.copy f f' h = let __src := sSupHom.copy (CompleteLatticeHom.tosSupHom f) f' h; { tosInfHom := sInfHom.copy f.tosInfHom f' h, map_sSup' := ⋯ }
Instances For
id
as a CompleteLatticeHom
.
Equations
- CompleteLatticeHom.id α = let __src := sSupHom.id α; let __src := sInfHom.id α; { tosInfHom := { toFun := id, map_sInf' := ⋯ }, map_sSup' := ⋯ }
Instances For
Equations
- CompleteLatticeHom.instInhabitedCompleteLatticeHom α = { default := CompleteLatticeHom.id α }
Composition of CompleteLatticeHom
s as a CompleteLatticeHom
.
Equations
- CompleteLatticeHom.comp f g = let __src := sSupHom.comp (CompleteLatticeHom.tosSupHom f) (CompleteLatticeHom.tosSupHom g); { tosInfHom := sInfHom.comp f.tosInfHom 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 = { tosInfHom := { 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
.