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 proposition that a Heyting homomorphism preserves the bottom element.
The proposition that a Heyting homomorphism preserves the Heyting implication.
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 proposition that a co-Heyting homomorphism preserves the top element.
The proposition that a co-Heyting homomorphism preserves the difference operation.
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
The proposition that a bi-Heyting homomorphism preserves the Heyting implication.
The proposition that a bi-Heyting homomorphism preserves the difference operation.
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
The proposition that a Heyting homomorphism preserves the bottom element.
The proposition that a Heyting homomorphism preserves the Heyting implication.
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
The proposition that a co-Heyting homomorphism preserves the top element.
The proposition that a co-Heyting homomorphism preserves the difference operation.
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
The proposition that a bi-Heyting homomorphism preserves the Heyting implication.
The proposition that a bi-Heyting homomorphism preserves the difference operation.
This section passes in some instances implicitly. See note [implicit instance arguments]
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
This can't be an instance because of typeclass loops.
Equations
- instCoeTCHeytingHomOfHeytingHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯, map_bot' := ⋯, map_himp' := ⋯ } }
Equations
- instCoeTCCoheytingHomOfCoheytingHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯, map_top' := ⋯, map_sdiff' := ⋯ } }
Equations
- instCoeTCBiheytingHomOfBiheytingHomClass = { coe := fun (f : F) => { 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
- f.copy f' h = { toFun := f', map_sup' := ⋯, map_inf' := ⋯, map_bot' := ⋯, map_himp' := ⋯ }
Instances For
id
as a HeytingHom
.
Equations
- HeytingHom.id α = { toLatticeHom := LatticeHom.id α, map_bot' := ⋯, map_himp' := ⋯ }
Instances For
Equations
- HeytingHom.instInhabited = { default := HeytingHom.id α }
Equations
- HeytingHom.instPartialOrder = PartialOrder.lift (fun (f : HeytingHom α β) => ⇑f) ⋯
Composition of HeytingHom
s as a HeytingHom
.
Equations
Instances For
Equations
- CoheytingHom.instFunLike = { 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
- f.copy f' h = { toFun := f', map_sup' := ⋯, map_inf' := ⋯, map_top' := ⋯, map_sdiff' := ⋯ }
Instances For
id
as a CoheytingHom
.
Equations
- CoheytingHom.id α = { toLatticeHom := LatticeHom.id α, map_top' := ⋯, map_sdiff' := ⋯ }
Instances For
Equations
- CoheytingHom.instInhabited = { default := CoheytingHom.id α }
Equations
- CoheytingHom.instPartialOrder = PartialOrder.lift (fun (f : CoheytingHom α β) => ⇑f) ⋯
Composition of CoheytingHom
s as a CoheytingHom
.
Equations
Instances For
Equations
- BiheytingHom.instFunLike = { 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
- f.copy f' h = { toFun := f', map_sup' := ⋯, map_inf' := ⋯, map_himp' := ⋯, map_sdiff' := ⋯ }
Instances For
id
as a BiheytingHom
.
Equations
- BiheytingHom.id α = { toLatticeHom := LatticeHom.id α, map_himp' := ⋯, map_sdiff' := ⋯ }
Instances For
Equations
- BiheytingHom.instInhabited = { default := BiheytingHom.id α }
Equations
- BiheytingHom.instPartialOrder = PartialOrder.lift (fun (f : BiheytingHom α β) => ⇑f) ⋯
Composition of BiheytingHom
s as a BiheytingHom
.