Documentation

Mathlib.CategoryTheory.ChosenFiniteProducts

Categories with chosen finite products #

We introduce a class, ChosenFiniteProducts, which bundles explicit choices for a terminal object and binary products in a category C. This is primarily useful for categories which have finite products with good definitional properties, such as the category of types.

Given a category with such an instance, we also provide the associated symmetric monoidal structure so that one can write X ⊗ Y for the explicit binary product and 𝟙_ C for the explicit terminal object.

Projects #

An instance of ChosenFiniteProducts C bundles an explicit choice of a binary product of two objects of C, and a terminal object in C.

Users should use the monoidal notation: X ⊗ Y for the product and 𝟙_ C for the terminal object.

Instances
    @[instance 100]
    Equations
    • One or more equations did not get rendered due to their size.
    @[instance 100]
    Equations
    • One or more equations did not get rendered due to their size.

    The unique map to the terminal object.

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

      This lemma follows from the preexisting Unique instance, but it is often convenient to use it directly as apply toUnit_unique forcing lean to do the necessary elaboration.

      Construct a morphism to the product given its two components.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.ChosenFiniteProducts.lift_fst {C : Type u} [Category.{v, u} C] [ChosenFiniteProducts C] {T X Y : C} (f : T X) (g : T Y) :
        @[simp]
        @[simp]
        theorem CategoryTheory.ChosenFiniteProducts.lift_snd {C : Type u} [Category.{v, u} C] [ChosenFiniteProducts C] {T X Y : C} (f : T X) (g : T Y) :
        @[simp]
        @[simp]
        theorem CategoryTheory.ChosenFiniteProducts.tensorHom_fst {C : Type u} [Category.{v, u} C] [ChosenFiniteProducts C] {X₁ X₂ Y₁ Y₂ : C} (f : X₁ X₂) (g : Y₁ Y₂) :
        @[simp]
        theorem CategoryTheory.ChosenFiniteProducts.tensorHom_fst_assoc {C : Type u} [Category.{v, u} C] [ChosenFiniteProducts C] {X₁ X₂ Y₁ Y₂ : C} (f : X₁ X₂) (g : Y₁ Y₂) {Z : C} (h : X₂ Z) :
        @[simp]
        theorem CategoryTheory.ChosenFiniteProducts.tensorHom_snd {C : Type u} [Category.{v, u} C] [ChosenFiniteProducts C] {X₁ X₂ Y₁ Y₂ : C} (f : X₁ X₂) (g : Y₁ Y₂) :
        @[simp]
        theorem CategoryTheory.ChosenFiniteProducts.tensorHom_snd_assoc {C : Type u} [Category.{v, u} C] [ChosenFiniteProducts C] {X₁ X₂ Y₁ Y₂ : C} (f : X₁ X₂) (g : Y₁ Y₂) {Z : C} (h : Y₂ Z) :

        Construct an instance of ChosenFiniteProducts C given an instance of HasFiniteProducts C.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[reducible, inline]

          When C and D have chosen finite products and F : C ⥤ D is any functor, terminalComparison F is the unique map F (𝟙_ C) ⟶ 𝟙_ D.

          Equations
          Instances For

            If F preserves terminal objects, then terminalComparison F is an isomorphism.

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

              When C and D have chosen finite products and F : C ⥤ D is any functor, prodComparison F A B is the canonical comparison morphism from F (A ⊗ B) to F(A) ⊗ F(B).

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                @[simp]

                Naturality of the prodComparison morphism in both arguments.

                If the product comparison morphism is an iso, its inverse is natural in both argument.

                If the product comparison morphism is an iso, its inverse is natural in the right argument.

                If the product comparison morphism is an iso, its inverse is natural in the left argument.

                The product comparison morphism from F(A ⊗ -) to FA ⊗ F-, whose components are given by prodComparison.

                Equations
                Instances For

                  The product comparison morphism from F(- ⊗ -) to F- ⊗ F-, whose components are given by prodComparison.

                  Equations
                  Instances For

                    If F preserves the limit of the pair (A, B), then the binary fan given by (F.map fst A B, F.map (snd A B)) is a limit cone.

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

                      If F preserves the limit of the pair (A, B), then prodComparison F A B is an isomorphism.

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

                        The natural isomorphism F(A ⊗ -) ≅ FA ⊗ F-, provided each prodComparison F A B is an isomorphism (as B changes).

                        Equations
                        Instances For

                          If prodComparison F A B is an isomorphism, then F preserves the limit of pair A B.

                          Any functor between categories with chosen finite products induces an oplax monoial functor.

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

                            If F : C ⥤ D is a functor between categories with chosen finite products that preserves finite products, then it is a monoidal functor.

                            Equations
                            Instances For