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
      Instances For
        structure Lat.Hom (X Y : Lat) :

        The type of morphisms in Lat R.

        Instances For
          theorem Lat.Hom.ext {X Y : Lat} {x y : X.Hom Y} (hom' : x.hom' = y.hom') :
          x = y
          theorem Lat.Hom.ext_iff {X Y : Lat} {x y : X.Hom Y} :
          x = y ↔ x.hom' = y.hom'
          @[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
            Instances For
              @[reducible, inline]
              abbrev Lat.ofHom {X Y : Type u} [Lattice X] [Lattice Y] (f : LatticeHom X Y) :

              Typecheck a LatticeHom as a morphism in Lat.

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

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

                  Equations
                    Instances For

                      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
                      theorem Lat.hom_ext {X Y : Lat} {f g : X ⟢ Y} (hf : Hom.hom f = Hom.hom g) :
                      f = g
                      theorem Lat.hom_ext_iff {X Y : Lat} {f g : X ⟢ Y} :
                      @[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) :
                      def Lat.Iso.mk {Ξ± Ξ² : Lat} (e : ↑α ≃o ↑β) :
                      Ξ± β‰… Ξ²

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

                      Equations
                        Instances For
                          @[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
                            Instances For
                              @[simp]
                              theorem Lat.dual_map {X✝ Y✝ : Lat} (f : X✝ ⟢ Y✝) :

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

                              Equations
                                Instances For