The category of lattices #
This defines Lat, the category of lattices.
Note that Lat doesn't correspond to the literature definition of [Lat]
(https://ncatlab.org/nlab/show/Lat) as we don't require bottom or top elements. Instead, Lat
corresponds to BddLat.
TODO #
The free functor from Lat to BddLat is X β WithTop (WithBot X).
@[implicit_reducible]
@[implicit_reducible]
instance
Lat.instConcreteCategoryLatticeHomCarrier :
CategoryTheory.ConcreteCategory Lat fun (x1 x2 : Lat) => LatticeHom βx1 βx2
Use the ConcreteCategory.hom projection for @[simps] lemmas.
Instances For
The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.
@[simp]
@[simp]
@[simp]
theorem
Lat.forget_map
{X Y : Lat}
(f : X βΆ Y)
:
(CategoryTheory.forget Lat).map f = β(CategoryTheory.ConcreteCategory.hom f)
theorem
Lat.ext
{X Y : Lat}
{f g : X βΆ Y}
(w : β (x : βX), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x)
:
f = g
theorem
Lat.ext_iff
{X Y : Lat}
{f g : X βΆ Y}
:
f = g β β (x : βX), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x
@[simp]
@[simp]
theorem
Lat.hom_comp
{X Y Z : Lat}
(f : X βΆ Y)
(g : Y βΆ Z)
:
Hom.hom (CategoryTheory.CategoryStruct.comp f g) = (Hom.hom g).comp (Hom.hom f)
@[simp]
@[simp]
theorem
Lat.ofHom_id
{X : Type u}
[Lattice X]
:
ofHom (LatticeHom.id X) = CategoryTheory.CategoryStruct.id (of X)
@[simp]
theorem
Lat.ofHom_comp
{X Y Z : Type u}
[Lattice X]
[Lattice Y]
[Lattice Z]
(f : LatticeHom X Y)
(g : LatticeHom Y Z)
:
ofHom (g.comp f) = CategoryTheory.CategoryStruct.comp (ofHom f) (ofHom g)
theorem
Lat.ofHom_apply
{X Y : Type u}
[Lattice X]
[Lattice Y]
(f : LatticeHom X Y)
(x : X)
:
(CategoryTheory.ConcreteCategory.hom (ofHom f)) x = f x
theorem
Lat.inv_hom_apply
{X Y : Lat}
(e : X β
Y)
(x : βX)
:
(CategoryTheory.ConcreteCategory.hom e.inv) ((CategoryTheory.ConcreteCategory.hom e.hom) x) = x
theorem
Lat.hom_inv_apply
{X Y : Lat}
(e : X β
Y)
(s : βY)
:
(CategoryTheory.ConcreteCategory.hom e.hom) ((CategoryTheory.ConcreteCategory.hom e.inv) s) = s
@[implicit_reducible]
Constructs an isomorphism of lattices from an order isomorphism between them.
Instances For
@[simp]
OrderDual as a functor.
Instances For
@[simp]
theorem
Lat.dual_map
{Xβ Yβ : Lat}
(f : Xβ βΆ Yβ)
:
dual.map f = ofHom (LatticeHom.dual (Hom.hom f))