Unbounded lattice homomorphisms #
This file defines unbounded lattice homomorphisms. Bounded lattice homomorphisms are defined in
Mathlib.Order.Hom.BoundedLattice
.
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
The type of lattice homomorphisms from α
to β
.
- toFun : α → β
A
LatticeHom
preserves infima.Do not use this directly. Use
map_inf
instead.
Instances For
SupHomClass F α β
states that F
is a type of ⊔
-preserving morphisms.
You should extend this class when you extend SupHom
.
A
SupHomClass
morphism preserves suprema.
Instances
InfHomClass F α β
states that F
is a type of ⊓
-preserving morphisms.
You should extend this class when you extend InfHom
.
An
InfHomClass
morphism preserves infima.
Instances
LatticeHomClass F α β
states that F
is a type of lattice morphisms.
You should extend this class when you extend LatticeHom
.
A
LatticeHomClass
morphism preserves infima.
Instances
We can regard an injective map preserving binary infima as an order embedding.
Equations
Instances For
Equations
- instCoeTCSupHomOfSupHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_sup' := ⋯ } }
Equations
- instCoeTCInfHomOfInfHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_inf' := ⋯ } }
Equations
- instCoeTCLatticeHomOfLatticeHomClass = { coe := fun (f : F) => { toFun := ⇑f, map_sup' := ⋯, map_inf' := ⋯ } }
Supremum homomorphisms #
Equations
- SupHom.instFunLike = { coe := SupHom.toFun, coe_injective' := ⋯ }
Equations
- SupHom.instInhabited α = { default := SupHom.id α }
The constant function as a SupHom
.
Equations
- SupHom.const α b = { toFun := fun (x : α) => b, map_sup' := ⋯ }
Instances For
Equations
- SupHom.instMax = { max := fun (f g : SupHom α β) => { toFun := ⇑f ⊔ ⇑g, map_sup' := ⋯ } }
Equations
- SupHom.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : SupHom α β) => ⇑f) ⋯ ⋯
Equations
- SupHom.instBot = { bot := SupHom.const α ⊥ }
Equations
- SupHom.instTop = { top := SupHom.const α ⊤ }
Equations
Equations
Equations
Subtype.val
as a SupHom
.
Equations
- SupHom.subtypeVal Psup = { toFun := Subtype.val, map_sup' := ⋯ }
Instances For
Infimum homomorphisms #
Equations
- InfHom.instFunLike = { coe := InfHom.toFun, coe_injective' := ⋯ }
Equations
- InfHom.instInhabited α = { default := InfHom.id α }
The constant function as an InfHom
.
Equations
- InfHom.const α b = { toFun := fun (x : α) => b, map_inf' := ⋯ }
Instances For
Equations
- InfHom.instMin = { min := fun (f g : InfHom α β) => { toFun := ⇑f ⊓ ⇑g, map_inf' := ⋯ } }
Equations
- InfHom.instSemilatticeInf = Function.Injective.semilatticeInf (fun (f : InfHom α β) => ⇑f) ⋯ ⋯
Equations
- InfHom.instBot = { bot := InfHom.const α ⊥ }
Equations
- InfHom.instTop = { top := InfHom.const α ⊤ }
Equations
Equations
Equations
Subtype.val
as an InfHom
.
Equations
- InfHom.subtypeVal Pinf = { toFun := Subtype.val, map_inf' := ⋯ }
Instances For
Lattice homomorphisms #
Reinterpret a LatticeHom
as an InfHom
.
Instances For
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 LatticeHom
s 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' := ⋯ }