Lattice homomorphisms #
This file defines (bounded) 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 #
SupHom: Maps which preserve⊔.InfHom: Maps which preserve⊓.SupBotHom: Finitary supremum homomorphisms. Maps which preserve⊔and⊥.InfTopHom: Finitary infimum homomorphisms. Maps which preserve⊓and⊤.LatticeHom: Lattice homomorphisms. Maps which preserve⊔and⊓.BoundedLatticeHom: Bounded lattice homomorphisms. Maps which preserve⊤,⊥,⊔and⊓.
Typeclasses #
TODO #
Do we need more intersections between BotHom, TopHom and lattice homomorphisms?
The type of lattice homomorphisms from α to β.
- toFun : α → β
A
LatticeHompreserves infima.
Instances For
The type of bounded lattice homomorphisms from α to β.
- toFun : α → β
A
BoundedLatticeHompreserves the top element.A
BoundedLatticeHompreserves the bottom element.
Instances For
SupHomClass F α β states that F is a type of ⊔-preserving morphisms.
You should extend this class when you extend SupHom.
A
SupHomClassmorphism preserves suprema.
Instances
InfHomClass F α β states that F is a type of ⊓-preserving morphisms.
You should extend this class when you extend InfHom.
An
InfHomClassmorphism preserves infima.
Instances
SupBotHomClass F α β states that F is a type of finitary supremum-preserving morphisms.
You should extend this class when you extend SupBotHom.
A
SupBotHomClassmorphism preserves the bottom element.
Instances
InfTopHomClass F α β states that F is a type of finitary infimum-preserving morphisms.
You should extend this class when you extend SupBotHom.
An
InfTopHomClassmorphism preserves the top element.
Instances
LatticeHomClass F α β states that F is a type of lattice morphisms.
You should extend this class when you extend LatticeHom.
A
LatticeHomClassmorphism preserves infima.
Instances
BoundedLatticeHomClass F α β states that F is a type of bounded lattice morphisms.
You should extend this class when you extend BoundedLatticeHom.
A
BoundedLatticeHomClassmorphism preserves the top element.A
BoundedLatticeHomClassmorphism preserves the bottom element.
Instances
Equations
- (_ : OrderHomClass F α β) = (_ : RelHomClass F (fun (x x_1 : α) => x ≤ x_1) fun (x x_1 : β) => x ≤ x_1)
Equations
- (_ : OrderHomClass F α β) = (_ : RelHomClass F (fun (x x_1 : α) => x ≤ x_1) fun (x x_1 : β) => x ≤ x_1)
Equations
- (_ : BotHomClass F α β) = (_ : BotHomClass F α β)
Equations
- (_ : TopHomClass F α β) = (_ : TopHomClass F α β)
Equations
- (_ : InfHomClass F α β) = (_ : InfHomClass F α β)
Equations
- (_ : SupBotHomClass F α β) = (_ : SupBotHomClass F α β)
Equations
- (_ : InfTopHomClass F α β) = (_ : InfTopHomClass F α β)
Equations
- (_ : BoundedOrderHomClass F α β) = (_ : BoundedOrderHomClass F α β)
Equations
- (_ : SupHomClass F α β) = (_ : SupHomClass F α β)
Equations
- (_ : InfHomClass F α β) = (_ : InfHomClass F α β)
Equations
- (_ : SupBotHomClass F α β) = (_ : SupBotHomClass F α β)
Equations
- (_ : InfTopHomClass F α β) = (_ : InfTopHomClass F α β)
Equations
- (_ : LatticeHomClass F α β) = (_ : LatticeHomClass F α β)
Equations
- (_ : BoundedLatticeHomClass F α β) = (_ : BoundedLatticeHomClass F α β)
We can regard an injective map preserving binary infima as an order embedding.
Equations
- orderEmbeddingOfInjective f hf = OrderEmbedding.ofMapLEIff ⇑f (_ : ∀ (x y : α), f x ≤ f y ↔ x ≤ y)
Instances For
Special case of map_compl for boolean algebras.
Special case of map_sdiff for boolean algebras.
Special case of map_symmDiff for boolean algebras.
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.
Supremum homomorphisms #
Equations
- (_ : SupHomClass (SupHom α β) α β) = (_ : SupHomClass (SupHom α β) α β)
Copy of a SupHom with a new toFun equal to the old one. Useful to fix definitional
equalities.
Equations
- SupHom.copy f f' h = { toFun := f', map_sup' := (_ : ∀ (a b : α), f' (a ⊔ b) = f' a ⊔ f' b) }
Instances For
Equations
- SupHom.instInhabitedSupHom α = { default := SupHom.id α }
Equations
- One or more equations did not get rendered due to their size.
Equations
- SupHom.instBotSupHomToSup = { bot := SupHom.const α ⊥ }
Equations
- SupHom.instTopSupHomToSup = { top := SupHom.const α ⊤ }
Equations
- One or more equations did not get rendered due to their size.
Infimum homomorphisms #
Equations
- (_ : InfHomClass (InfHom α β) α β) = (_ : InfHomClass (InfHom α β) α β)
Copy of an InfHom with a new toFun equal to the old one. Useful to fix definitional
equalities.
Equations
- InfHom.copy f f' h = { toFun := f', map_inf' := (_ : ∀ (a b : α), f' (a ⊓ b) = f' a ⊓ f' b) }
Instances For
Equations
- InfHom.instInhabitedInfHom α = { default := InfHom.id α }
Equations
- One or more equations did not get rendered due to their size.
Equations
- InfHom.instBotInfHomToInf = { bot := InfHom.const α ⊥ }
Equations
- InfHom.instTopInfHomToInf = { top := InfHom.const α ⊤ }
Equations
- One or more equations did not get rendered due to their size.
Finitary supremum homomorphisms #
Equations
- (_ : SupBotHomClass (SupBotHom α β) α β) = (_ : SupBotHomClass (SupBotHom α β) α β)
Copy of a SupBotHom with a new toFun equal to the old one. Useful to fix definitional
equalities.
Equations
- SupBotHom.copy f f' h = let src := BotHom.copy (SupBotHom.toBotHom f) f' h; { toSupHom := SupHom.copy f.toSupHom f' h, map_bot' := (_ : src.toFun ⊥ = ⊥) }
Instances For
Equations
- SupBotHom.instInhabitedSupBotHom α = { default := SupBotHom.id α }
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.
Finitary infimum homomorphisms #
Equations
- (_ : InfTopHomClass (InfTopHom α β) α β) = (_ : InfTopHomClass (InfTopHom α β) α β)
Copy of an InfTopHom with a new toFun equal to the old one. Useful to fix definitional
equalities.
Equations
- InfTopHom.copy f f' h = let src := TopHom.copy (InfTopHom.toTopHom f) f' h; { toInfHom := InfHom.copy f.toInfHom f' h, map_top' := (_ : src.toFun ⊤ = ⊤) }
Instances For
Equations
- InfTopHom.instInhabitedInfTopHom α = { default := InfTopHom.id α }
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.
Lattice homomorphisms #
Reinterpret a LatticeHom as an InfHom.
Equations
- LatticeHom.toInfHom f = { toFun := f.toFun, map_inf' := (_ : ∀ (a b : α), f.toSupHom.toFun (a ⊓ b) = f.toSupHom.toFun a ⊓ f.toSupHom.toFun b) }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : LatticeHomClass (LatticeHom α β) α β) = (_ : LatticeHomClass (LatticeHom α β) α β)
Copy of a LatticeHom 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 LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- LatticeHom.instInhabitedLatticeHom α = { default := LatticeHom.id α }
Composition of LatticeHoms as a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An order homomorphism from a linear order is a lattice homomorphism.
Equations
- (_ : LatticeHomClass F α β) = (_ : LatticeHomClass F α β)
Reinterpret an order homomorphism to a linear order as a LatticeHom.
Equations
Instances For
Bounded lattice homomorphisms #
Reinterpret a BoundedLatticeHom as a SupBotHom.
Equations
- BoundedLatticeHom.toSupBotHom f = { toSupHom := f.toSupHom, map_bot' := (_ : f.toSupHom.toFun ⊥ = ⊥) }
Instances For
Reinterpret a BoundedLatticeHom as an InfTopHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reinterpret a BoundedLatticeHom as a BoundedOrderHom.
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
- (_ : BoundedLatticeHomClass (BoundedLatticeHom α β) α β) = (_ : BoundedLatticeHomClass (BoundedLatticeHom α β) α β)
Copy of a BoundedLatticeHom 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 BoundedLatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- BoundedLatticeHom.instInhabitedBoundedLatticeHom α = { default := BoundedLatticeHom.id α }
Composition of BoundedLatticeHoms as a BoundedLatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dual homs #
Reinterpret a lattice homomorphism as a lattice homomorphism between the dual lattices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reinterpret a bounded lattice homomorphism as a bounded lattice homomorphism between the dual bounded lattices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊤ to the domain and codomain of a SupHom.
Equations
- SupHom.withTop f = { toFun := WithTop.map ⇑f, map_sup' := (_ : ∀ (a b : WithTop α), WithTop.map (⇑f) (a ⊔ b) = WithTop.map (⇑f) a ⊔ WithTop.map (⇑f) b) }
Instances For
Adjoins a ⊥ to the domain and codomain of a SupHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊤ to the codomain of a SupHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊥ to the domain of a SupHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊤ to the domain and codomain of an InfHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊥ to the domain and codomain of an InfHom.
Equations
- InfHom.withBot f = { toFun := Option.map ⇑f, map_inf' := (_ : ∀ (a b : WithBot α), Option.map (⇑f) (a ⊓ b) = Option.map (⇑f) a ⊓ Option.map (⇑f) b) }
Instances For
Adjoins a ⊤ to the codomain of an InfHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊥ to the codomain of an InfHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊤ to the domain and codomain of a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊥ to the domain and codomain of a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊤ and ⊥ to the domain and codomain of a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊥ to the codomain of a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊥ to the domain and codomain of a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adjoins a ⊤ and ⊥ to the codomain of a LatticeHom.
Equations
- One or more equations did not get rendered due to their size.