Unbounded lattice homomorphisms #
This file defines unbounded lattice homomorphisms. Bounded lattice homomorphisms are defined in
Mathlib/Order/Hom/BoundedLattice.lean.
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⊓.LatticeHom: Lattice homomorphisms. Maps which preserve⊔and⊓.
Typeclasses #
The type of ⊔-preserving functions from α to β.
- toFun : α → β
Instances For
The type of ⊓-preserving functions from α to β.
- toFun : α → β
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
LatticeHomClass F α β states that F is a type of lattice morphisms.
You should extend this class when you extend LatticeHom.
Instances
We can regard an injective map preserving binary infima as an order embedding.
Equations
Instances For
Supremum homomorphisms #
Equations
- SupHom.instFunLike = { coe := SupHom.toFun, coe_injective' := ⋯ }
Equations
- InfHom.instFunLike = { coe := InfHom.toFun, coe_injective' := ⋯ }
The constant function as a SupHom.
Equations
- SupHom.const α b = { toFun := fun (x : α) => b, map_sup' := ⋯ }
Instances For
The constant function as an InfHom.
Equations
- InfHom.const α b = { toFun := fun (x : α) => b, map_inf' := ⋯ }
Instances For
Equations
- SupHom.instPartialOrder = PartialOrder.lift (fun (f : SupHom α β) => ⇑f) ⋯
Equations
- InfHom.instPartialOrder = PartialOrder.lift (fun (f : InfHom α β) => ⇑f) ⋯
Equations
- SupHom.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : SupHom α β) => ⇑f) ⋯ ⋯ ⋯ ⋯
Equations
- InfHom.instSemilatticeInf = Function.Injective.semilatticeInf (fun (f : InfHom α β) => ⇑f) ⋯ ⋯ ⋯ ⋯
Equations
- SupHom.instBot = { bot := SupHom.const α ⊥ }
Equations
- InfHom.instTop = { top := InfHom.const α ⊤ }
Equations
- SupHom.instTop = { top := SupHom.const α ⊤ }
Equations
- InfHom.instBot = { bot := InfHom.const α ⊥ }
Equations
Equations
Equations
Equations
Equations
Equations
Subtype.val as a SupHom.
Equations
- SupHom.subtypeVal Psup = { toFun := Subtype.val, map_sup' := ⋯ }
Instances For
Subtype.val as an InfHom.
Equations
- InfHom.subtypeVal Psup = { toFun := Subtype.val, map_inf' := ⋯ }
Instances For
Lattice homomorphisms #
Equations
- LatticeHom.instFunLike = { coe := fun (f : LatticeHom α β) => f.toFun, coe_injective' := ⋯ }
Copy of a LatticeHom with a new toFun equal to the old one. Useful to fix definitional
equalities.
Instances For
id as a LatticeHom.
Equations
- LatticeHom.id α = { toFun := id, map_sup' := ⋯, map_inf' := ⋯ }
Instances For
Equations
- LatticeHom.instInhabited α = { default := LatticeHom.id α }
Composition of LatticeHoms as a LatticeHom.
Instances For
Subtype.val as a LatticeHom.
Equations
- LatticeHom.subtypeVal Psup Pinf = { toSupHom := SupHom.subtypeVal Psup, map_inf' := ⋯ }
Instances For
An order homomorphism from a linear order is a lattice homomorphism.
Reinterpret an order homomorphism to a linear order as a LatticeHom.
Equations
- OrderHomClass.toLatticeHom α β f = { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯ }
Instances For
Dual homs #
Reinterpret a supremum homomorphism as an infimum homomorphism between the dual lattices.
Equations
Instances For
Reinterpret an infimum homomorphism as a supremum homomorphism between the dual lattices.
Equations
Instances For
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
Prod #
Natural projection homomorphism from α × β to α.
Equations
- LatticeHom.fst = { toFun := Prod.fst, map_sup' := ⋯, map_inf' := ⋯ }
Instances For
Natural projection homomorphism from α × β to β.
Equations
- LatticeHom.snd = { toFun := Prod.snd, map_sup' := ⋯, map_inf' := ⋯ }
Instances For
Pi #
Evaluation as a lattice homomorphism.
Equations
- Pi.evalLatticeHom i = { toFun := Function.eval i, map_sup' := ⋯, map_inf' := ⋯ }