Documentation

Mathlib.CategoryTheory.Category.ULift

Basic API for ULift #

This file contains a very basic API for working with the categorical instance on ULift C where C is a type with a category instance.

  1. CategoryTheory.ULift.upFunctor is the functorial version of the usual ULift.up.
  2. CategoryTheory.ULift.downFunctor is the functorial version of the usual ULift.down.
  3. CategoryTheory.ULift.equivalence is the categorical equivalence between C and ULift C.

ULiftHom #

Given a type C : Type u, ULiftHom.{w} C is just an alias for C. If we have Category.{v} C, then ULiftHom.{w} C is endowed with a category instance whose morphisms are obtained by applying ULift.{w} to the morphisms from C.

This is a category equivalent to C. The forward direction of the equivalence is ULiftHom.up, the backward direction is ULiftHom.down and the equivalence is ULiftHom.equiv.

AsSmall #

This file also contains a construction which takes a type C : Type u with a category instance Category.{v} C and makes a small category AsSmall.{w} C : Type (max w v u) equivalent to C.

The forward direction of the equivalence, C ℤ AsSmall C, is denoted AsSmall.up and the backward direction is AsSmall.down. The equivalence itself is AsSmall.equiv.

def CategoryTheory.ULift.upFunctor {C : Type u₁} [Category.{v₁, u₁} C] :
Functor C (ULift.{uā‚‚, u₁} C)

The functorial version of ULift.up.

Instances For
    @[simp]
    theorem CategoryTheory.ULift.upFunctor_map {C : Type u₁} [Category.{v₁, u₁} C] {Xāœ Yāœ : C} (f : Xāœ ⟶ Yāœ) :
    @[simp]
    theorem CategoryTheory.ULift.upFunctor_obj_down {C : Type u₁} [Category.{v₁, u₁} C] (down : C) :
    (upFunctor.obj down).down = down
    def CategoryTheory.ULift.downFunctor {C : Type u₁} [Category.{v₁, u₁} C] :
    Functor (ULift.{uā‚‚, u₁} C) C

    The functorial version of ULift.down.

    Instances For
      @[simp]
      theorem CategoryTheory.ULift.downFunctor_obj {C : Type u₁} [Category.{v₁, u₁} C] (self : ULift.{uā‚‚, u₁} C) :
      downFunctor.obj self = self.down
      @[simp]
      theorem CategoryTheory.ULift.downFunctor_map {C : Type u₁} [Category.{v₁, u₁} C] {Xāœ Yāœ : ULift.{uā‚‚, u₁} C} (f : Xāœ ⟶ Yāœ) :
      def CategoryTheory.ULift.equivalence {C : Type u₁} [Category.{v₁, u₁} C] :
      C ā‰Œ ULift.{uā‚‚, u₁} C

      The categorical equivalence between C and ULift C.

      Instances For
        @[simp]
        theorem CategoryTheory.ULift.equivalence_counitIso_inv_app {C : Type u₁} [Category.{v₁, u₁} C] (xāœ : ULift.{uā‚‚, u₁} C) :
        equivalence.counitIso.inv.app xāœ = CategoryStruct.id ((Functor.id (ULift.{uā‚‚, u₁} C)).obj xāœ)

        ULiftHom.{w} C is an alias for C, which is endowed with a category instance whose morphisms are obtained by applying ULift.{w} to the morphisms from C.

        Instances For
          @[implicit_reducible]
          instance CategoryTheory.instInhabitedULiftHom {C : Type u_1} [Inhabited C] :
          Inhabited (ULiftHom C)

          The obvious function ULiftHom C → C.

          Instances For

            The obvious function C → ULiftHom C.

            Instances For

              The type-level equivalence between C and ULiftHom C.

              Instances For

                One half of the equivalence between C and ULiftHom C.

                Instances For
                  @[simp]
                  theorem CategoryTheory.ULiftHom.up_map_down {C : Type u₁} [Category.{v₁, u₁} C] {Xāœ Yāœ : C} (f : Xāœ ⟶ Yāœ) :
                  (up.map f).down = f

                  One half of the equivalence between C and ULiftHom C.

                  Instances For
                    @[simp]
                    theorem CategoryTheory.ULiftHom.down_map {C : Type u₁} [Category.{v₁, u₁} C] {Xāœ Yāœ : ULiftHom C} (f : Xāœ ⟶ Yāœ) :
                    down.map f = f.down

                    The equivalence between C and ULiftHom C.

                    Instances For
                      def CategoryTheory.AsSmall (D : Type u) [Category.{v, u} D] :
                      Type (max u w v)

                      AsSmall C is a small category equivalent to C. More specifically, if C : Type u is endowed with Category.{v} C, then AsSmall.{w} C : Type (max w v u) is endowed with an instance of a small category.

                      The objects and morphisms of AsSmall C are defined by applying ULift to the objects and morphisms of C.

                      Note: We require a category instance for this definition in order to have direct access to the universe level v.

                      Instances For

                        One half of the equivalence between C and AsSmall C.

                        Instances For
                          @[simp]
                          theorem CategoryTheory.AsSmall.up_map_down {C : Type u₁} [Category.{v₁, u₁} C] {Xāœ Yāœ : C} (f : Xāœ ⟶ Yāœ) :
                          (up.map f).down = f
                          @[simp]
                          theorem CategoryTheory.AsSmall.up_obj_down {C : Type u₁} [Category.{v₁, u₁} C] (X : C) :
                          (up.obj X).down = X

                          One half of the equivalence between C and AsSmall C.

                          Instances For
                            @[simp]
                            theorem CategoryTheory.AsSmall.down_map {C : Type u₁} [Category.{v₁, u₁} C] {Xāœ Yāœ : AsSmall C} (f : Xāœ ⟶ Yāœ) :
                            down.map f = f.down
                            theorem CategoryTheory.down_comp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : AsSmall C} (f : X ⟶ Y) (g : Y ⟶ Z) :
                            (CategoryStruct.comp f g).down = CategoryStruct.comp f.down g.down
                            theorem CategoryTheory.down_comp_assoc {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : AsSmall C} (f : X ⟶ Y) (g : Y ⟶ Z) {Zāœ : C} (h : Z.down ⟶ Zāœ) :
                            @[simp]
                            theorem CategoryTheory.eqToHom_down {C : Type u₁} [Category.{v₁, u₁} C] {X Y : AsSmall C} (h : X = Y) :
                            (eqToHom h).down = eqToHom ⋯

                            The equivalence between C and AsSmall C.

                            Instances For
                              @[implicit_reducible]
                              instance CategoryTheory.instInhabitedAsSmall {C : Type u₁} [Category.{v₁, u₁} C] [Inhabited C] :
                              Inhabited (AsSmall C)

                              The type-level equivalence between C and ULiftHom (ULift C).

                              Instances For

                                The equivalence between C and ULiftHom (ULift C).

                                Instances For

                                  A type-level equivalence (C ℤ D) ā‰ƒ (C ℤ (ULiftHom.{v'} (ULift.{u'} D))). Note that this is not ensured by a categorical equivalence, and so needs special treatment.

                                  Instances For