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.
- map_himp' : ∀ (a b : α), self.toSupHom.toFun (a ⇨ b) = self.toSupHom.toFun a ⇨ self.toSupHom.toFun b
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.
- map_sdiff' : ∀ (a b : α), self.toSupHom.toFun (a \ b) = self.toSupHom.toFun a \ self.toSupHom.toFun b
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 : α → β
- map_himp' : ∀ (a b : α), self.toSupHom.toFun (a ⇨ b) = self.toSupHom.toFun a ⇨ self.toSupHom.toFun b
The proposition that a bi-Heyting homomorphism preserves the Heyting implication.
- map_sdiff' : ∀ (a b : α), self.toSupHom.toFun (a \ b) = self.toSupHom.toFun a \ self.toSupHom.toFun b
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
- (_ : BoundedLatticeHomClass F α β) = (_ : BoundedLatticeHomClass F α β)
Equations
- (_ : BoundedLatticeHomClass F α β) = (_ : BoundedLatticeHomClass F α β)
Equations
- (_ : HeytingHomClass F α β) = (_ : HeytingHomClass F α β)
Equations
- (_ : CoheytingHomClass F α β) = (_ : CoheytingHomClass F α β)
Equations
- (_ : HeytingHomClass F α β) = (_ : HeytingHomClass F α β)
Equations
- (_ : CoheytingHomClass F α β) = (_ : CoheytingHomClass F α β)
Equations
- (_ : BiheytingHomClass F α β) = (_ : BiheytingHomClass F α β)
This can't be an instance because of typeclass loops.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : HeytingHomClass (HeytingHom α β) α β) = (_ : HeytingHomClass (HeytingHom α β) α β)
Copy of a HeytingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
id
as a HeytingHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- HeytingHom.instInhabitedHeytingHom = { default := HeytingHom.id α }
Equations
- HeytingHom.instPartialOrderHeytingHom = PartialOrder.lift (fun (f : HeytingHom α β) => ⇑f) (_ : Function.Injective 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
- One or more equations did not get rendered due to their size.
Equations
- (_ : CoheytingHomClass (CoheytingHom α β) α β) = (_ : CoheytingHomClass (CoheytingHom α β) α β)
Copy of a CoheytingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
id
as a CoheytingHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CoheytingHom.instInhabitedCoheytingHom = { default := CoheytingHom.id α }
Equations
- CoheytingHom.instPartialOrderCoheytingHom = PartialOrder.lift (fun (f : CoheytingHom α β) => ⇑f) (_ : Function.Injective 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
- One or more equations did not get rendered due to their size.
Equations
- (_ : BiheytingHomClass (BiheytingHom α β) α β) = (_ : BiheytingHomClass (BiheytingHom α β) α β)
Copy of a BiheytingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
id
as a BiheytingHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- BiheytingHom.instInhabitedBiheytingHom = { default := BiheytingHom.id α }
Equations
- BiheytingHom.instPartialOrderBiheytingHom = PartialOrder.lift (fun (f : BiheytingHom α β) => ⇑f) (_ : Function.Injective fun (f : BiheytingHom α β) => ⇑f)
Composition of BiheytingHom
s as a BiheytingHom
.
Equations
- One or more equations did not get rendered due to their size.