Documentation

Mathlib.Order.Category.Lat

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).

structure Lat :
Type (u_1 + 1)

The category of lattices.

  • carrier : Type u_1

    The underlying lattices.

  • str : Lattice self
Instances For
@[reducible, inline]
abbrev Lat.of (X : Type u_1) [Lattice X] :

Construct a bundled Lat from the underlying type and typeclass.

Equations
structure Lat.Hom (X Y : Lat) :

The type of morphisms in Lat R.

theorem Lat.Hom.ext {X Y : Lat} {x y : X.Hom Y} (hom' : x.hom' = y.hom') :
x = y
Equations
  • One or more equations did not get rendered due to their size.
@[reducible, inline]
abbrev Lat.Hom.hom {X Y : Lat} (f : X.Hom Y) :
LatticeHom X Y

Turn a morphism in Lat back into a LatticeHom.

Equations
@[reducible, inline]
abbrev Lat.ofHom {X Y : Type u} [Lattice X] [Lattice Y] (f : LatticeHom X Y) :
of X of Y

Typecheck a LatticeHom as a morphism in Lat.

Equations
def Lat.Hom.Simps.hom (X Y : Lat) (f : X.Hom Y) :
LatticeHom X Y

Use the ConcreteCategory.hom projection for @[simps] lemmas.

Equations

The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.

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.coe_of (X : Type u) [Lattice X] :
(of X) = X
@[simp]
theorem Lat.hom_comp {X Y Z : Lat} (f : X Y) (g : Y Z) :
theorem Lat.hom_ext {X Y : Lat} {f g : X Y} (hf : Hom.hom f = Hom.hom g) :
f = g
@[simp]
theorem Lat.hom_ofHom {X Y : Type u} [Lattice X] [Lattice Y] (f : LatticeHom X Y) :
@[simp]
theorem Lat.ofHom_hom {X Y : Lat} (f : X Y) :
@[simp]
theorem Lat.ofHom_comp {X Y Z : Type u} [Lattice X] [Lattice Y] [Lattice Z] (f : LatticeHom X Y) (g : LatticeHom Y Z) :
theorem Lat.ofHom_apply {X Y : Type u} [Lattice X] [Lattice Y] (f : LatticeHom X Y) (x : X) :
Equations
  • One or more equations did not get rendered due to their size.
def Lat.Iso.mk {α β : Lat} (e : α ≃o β) :
α β

Constructs an isomorphism of lattices from an order isomorphism between them.

Equations
  • Lat.Iso.mk e = { hom := Lat.ofHom { toFun := e, map_sup' := , map_inf' := }, inv := Lat.ofHom { toFun := e.symm, map_sup' := , map_inf' := }, hom_inv_id := , inv_hom_id := }
@[simp]
theorem Lat.Iso.mk_hom {α β : Lat} (e : α ≃o β) :
(mk e).hom = ofHom { toFun := e, map_sup' := , map_inf' := }
@[simp]
theorem Lat.Iso.mk_inv {α β : Lat} (e : α ≃o β) :
(mk e).inv = ofHom { toFun := e.symm, map_sup' := , map_inf' := }

OrderDual as a functor.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Lat.dual_map {X✝ Y✝ : Lat} (f : X✝ Y✝) :

The equivalence between Lat and itself induced by OrderDual both ways.

Equations
  • One or more equations did not get rendered due to their size.