Heyting algebra morphisms #
A Heyting homomorphism between two Heyting algebras is a bounded lattice homomorphism that preserves Heyting implication.
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 #
HeytingHom
: Heyting homomorphisms.CoheytingHom
: Co-Heyting homomorphisms.BiheytingHom
: Bi-Heyting homomorphisms.
Typeclasses #
The type of Heyting homomorphisms from α
to β
. Bounded lattice homomorphisms that preserve
Heyting implication.
- toFun : α → β
The proposition that a Heyting homomorphism preserves the bottom element.
The proposition that a Heyting homomorphism preserves the Heyting implication.
Instances For
The type of co-Heyting homomorphisms from α
to β
. Bounded lattice homomorphisms that
preserve difference.
- toFun : α → β
The proposition that a co-Heyting homomorphism preserves the top element.
The proposition that a co-Heyting homomorphism preserves the difference operation.
Instances For
The type of bi-Heyting homomorphisms from α
to β
. Bounded lattice homomorphisms that
preserve Heyting implication and difference.
- toFun : α → β
The proposition that a bi-Heyting homomorphism preserves the Heyting implication.
The proposition that a bi-Heyting homomorphism preserves the difference operation.
Instances For
HeytingHomClass F α β
states that F
is a type of Heyting homomorphisms.
You should extend this class when you extend HeytingHom
.
The proposition that a Heyting homomorphism preserves the bottom element.
The proposition that a Heyting homomorphism preserves the Heyting implication.
Instances
CoheytingHomClass F α β
states that F
is a type of co-Heyting homomorphisms.
You should extend this class when you extend CoheytingHom
.
The proposition that a co-Heyting homomorphism preserves the top element.
The proposition that a co-Heyting homomorphism preserves the difference operation.
Instances
BiheytingHomClass F α β
states that F
is a type of bi-Heyting homomorphisms.
You should extend this class when you extend BiheytingHom
.
The proposition that a bi-Heyting homomorphism preserves the Heyting implication.
The proposition that a bi-Heyting homomorphism preserves the difference operation.
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
This can't be an instance because of typeclass loops.
Equations
- instCoeTCHeytingHom = { coe := fun (f : F) => { toLatticeHom := { toSupHom := { toFun := ⇑f, map_sup' := ⋯ }, map_inf' := ⋯ }, map_bot' := ⋯, map_himp' := ⋯ } }
Equations
- instCoeTCCoheytingHom = { coe := fun (f : F) => { toLatticeHom := { toSupHom := { toFun := ⇑f, map_sup' := ⋯ }, map_inf' := ⋯ }, map_top' := ⋯, map_sdiff' := ⋯ } }
Equations
- instCoeTCBiheytingHom = { coe := fun (f : F) => { toLatticeHom := { toSupHom := { toFun := ⇑f, map_sup' := ⋯ }, map_inf' := ⋯ }, map_himp' := ⋯, map_sdiff' := ⋯ } }
Equations
- HeytingHom.instFunLike = { coe := fun (f : HeytingHom α β) => f.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Copy of a HeytingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- HeytingHom.copy f f' h = { toLatticeHom := { toSupHom := { toFun := f', map_sup' := ⋯ }, map_inf' := ⋯ }, map_bot' := ⋯, map_himp' := ⋯ }
Instances For
id
as a HeytingHom
.
Equations
- HeytingHom.id α = let __src := BotHom.id α; { toLatticeHom := LatticeHom.id α, map_bot' := ⋯, map_himp' := ⋯ }
Instances For
Equations
- HeytingHom.instInhabitedHeytingHom = { default := HeytingHom.id α }
Equations
- HeytingHom.instPartialOrderHeytingHom = PartialOrder.lift (fun (f : HeytingHom α β) => ⇑f) ⋯
Composition of HeytingHom
s as a HeytingHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CoheytingHom.instFunLikeCoheytingHom = { coe := fun (f : CoheytingHom α β) => f.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Copy of a CoheytingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- CoheytingHom.copy f f' h = { toLatticeHom := { toSupHom := { toFun := f', map_sup' := ⋯ }, map_inf' := ⋯ }, map_top' := ⋯, map_sdiff' := ⋯ }
Instances For
id
as a CoheytingHom
.
Equations
- CoheytingHom.id α = let __src := TopHom.id α; { toLatticeHom := LatticeHom.id α, map_top' := ⋯, map_sdiff' := ⋯ }
Instances For
Equations
- CoheytingHom.instInhabitedCoheytingHom = { default := CoheytingHom.id α }
Equations
- CoheytingHom.instPartialOrderCoheytingHom = PartialOrder.lift (fun (f : CoheytingHom α β) => ⇑f) ⋯
Composition of CoheytingHom
s as a CoheytingHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- BiheytingHom.instFunLikeBiheytingHom = { coe := fun (f : BiheytingHom α β) => f.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Copy of a BiheytingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- BiheytingHom.copy f f' h = { toLatticeHom := { toSupHom := { toFun := f', map_sup' := ⋯ }, map_inf' := ⋯ }, map_himp' := ⋯, map_sdiff' := ⋯ }
Instances For
id
as a BiheytingHom
.
Equations
- BiheytingHom.id α = let __src := HeytingHom.id α; let __src := CoheytingHom.id α; { toLatticeHom := LatticeHom.id α, map_himp' := ⋯, map_sdiff' := ⋯ }
Instances For
Equations
- BiheytingHom.instInhabitedBiheytingHom = { default := BiheytingHom.id α }
Equations
- BiheytingHom.instPartialOrderBiheytingHom = PartialOrder.lift (fun (f : BiheytingHom α β) => ⇑f) ⋯
Composition of BiheytingHom
s as a BiheytingHom
.
Equations
- One or more equations did not get rendered due to their size.