Documentation

Mathlib.CategoryTheory.Monoidal.Opposite

Monoidal opposites #

We write Cᵐᵒᵖ for the monoidal opposite of a monoidal category C.

structure CategoryTheory.MonoidalOpposite (C : Type u₁) :
Type u₁

The type of objects of the opposite (or "reverse") monoidal category. Use the notation Cᴹᵒᵖ.

Instances For

    The type of objects of the opposite (or "reverse") monoidal category. Use the notation Cᴹᵒᵖ.

    Equations
    Instances For
      theorem CategoryTheory.MonoidalOpposite.mop_inj_iff {C : Type u₁} (x y : C) :
      { unmop := x } = { unmop := y } x = y
      @[simp]
      theorem CategoryTheory.MonoidalOpposite.unmop_inj_iff {C : Type u₁} (x y : Cᴹᵒᵖ) :
      x.unmop = y.unmop x = y
      @[simp]
      theorem CategoryTheory.MonoidalOpposite.mop_unmop {C : Type u₁} (X : Cᴹᵒᵖ) :
      { unmop := X.unmop } = X
      theorem CategoryTheory.MonoidalOpposite.unmop_mop {C : Type u₁} (X : C) :
      { unmop := X }.unmop = X
      def Quiver.Hom.mop {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} (f : X Y) :
      { unmop := X } { unmop := Y }

      The monoidal opposite of a morphism f : X ⟶ Y is just f, thought of as mop X ⟶ mop Y.

      Equations
      • f.mop = { unmop := f }
      Instances For
        def Quiver.Hom.unmop {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : Cᴹᵒᵖ} (f : X Y) :
        X.unmop Y.unmop

        We can think of a morphism f : mop X ⟶ mop Y as a morphism X ⟶ Y.

        Equations
        • f.unmop = f.unmop
        Instances For
          @[simp]
          theorem Quiver.Hom.unmop_mop {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} {f : X Y} :
          f.mop.unmop = f
          @[simp]
          theorem Quiver.Hom.mop_unmop {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : Cᴹᵒᵖ} {f : X Y} :
          f.unmop.mop = f
          @[simp]
          theorem CategoryTheory.mop_comp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : C} {f : X Y} {g : Y Z} :
          @[simp]
          theorem CategoryTheory.mop_id {C : Type u₁} [Category.{v₁, u₁} C] {X : C} :
          (CategoryStruct.id X).mop = CategoryStruct.id { unmop := X }
          @[simp]
          theorem CategoryTheory.unmop_comp {C : Type u₁} [Category.{v₁, u₁} C] {X Y Z : Cᴹᵒᵖ} {f : X Y} {g : Y Z} :
          (CategoryStruct.comp f g).unmop = CategoryStruct.comp f.unmop g.unmop
          @[simp]
          theorem CategoryTheory.unmop_id_mop {C : Type u₁} [Category.{v₁, u₁} C] {X : C} :
          (CategoryStruct.id { unmop := X }).unmop = CategoryStruct.id X

          The identity functor on C, viewed as a functor from C to its monoidal opposite.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.mopFunctor_obj (C : Type u₁) [Category.{v₁, u₁} C] (unmop : C) :
            (mopFunctor C).obj unmop = { unmop := unmop }
            @[simp]
            theorem CategoryTheory.mopFunctor_map (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : C} (f : X✝ Y✝) :
            (mopFunctor C).map f = f.mop

            The identity functor on C, viewed as a functor from the monoidal opposite of C to C.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.unmopFunctor_map (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : Cᴹᵒᵖ} (f : X✝ Y✝) :
              (unmopFunctor C).map f = f.unmop
              @[simp]
              theorem CategoryTheory.unmopFunctor_obj (C : Type u₁) [Category.{v₁, u₁} C] (self : Cᴹᵒᵖ) :
              (unmopFunctor C).obj self = self.unmop
              @[reducible, inline]
              abbrev CategoryTheory.Iso.mop {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} (f : X Y) :
              { unmop := X } { unmop := Y }

              An isomorphism in C gives an isomorphism in Cᴹᵒᵖ.

              Equations
              Instances For
                @[reducible, inline]
                abbrev CategoryTheory.Iso.unmop {C : Type u₁} [Category.{v₁, u₁} C] {X Y : Cᴹᵒᵖ} (f : X Y) :
                X.unmop Y.unmop

                An isomorphism in Cᴹᵒᵖ gives an isomorphism in C.

                Equations
                Instances For
                  instance CategoryTheory.IsIso.instMonoidalOppositeMop {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} (f : X Y) [IsIso f] :
                  IsIso f.mop
                  @[simp]
                  theorem CategoryTheory.op_tensorHom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X₁ Y₁ X₂ Y₂ : C} (f : X₁ Y₁) (g : X₂ Y₂) :
                  @[simp]
                  theorem CategoryTheory.unop_tensorHom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X₁ Y₁ X₂ Y₂ : Cᵒᵖ} (f : X₁ Y₁) (g : X₂ Y₂) :
                  @[simp]
                  theorem CategoryTheory.mop_tensorObj {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (X Y : C) :
                  { unmop := MonoidalCategoryStruct.tensorObj X Y } = MonoidalCategoryStruct.tensorObj { unmop := Y } { unmop := X }
                  @[simp]
                  theorem CategoryTheory.mop_tensorUnit {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] :
                  { unmop := 𝟙_ C } = 𝟙_ Cᴹᵒᵖ
                  @[simp]
                  theorem CategoryTheory.unmop_tensorUnit {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] :
                  (𝟙_ Cᴹᵒᵖ).unmop = 𝟙_ C
                  @[simp]
                  theorem CategoryTheory.mop_tensorHom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X₁ Y₁ X₂ Y₂ : C} (f : X₁ Y₁) (g : X₂ Y₂) :
                  @[simp]
                  theorem CategoryTheory.unmop_tensorHom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {X₁ Y₁ X₂ Y₂ : Cᴹᵒᵖ} (f : X₁ Y₁) (g : X₂ Y₂) :
                  @[simp]
                  @[simp]
                  @[simp]
                  theorem CategoryTheory.mop_associator {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (X Y Z : C) :
                  (MonoidalCategoryStruct.associator X Y Z).mop = (MonoidalCategoryStruct.associator { unmop := Z } { unmop := Y } { unmop := X }).symm
                  @[simp]
                  theorem CategoryTheory.mop_hom_associator {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (X Y Z : C) :
                  (MonoidalCategoryStruct.associator X Y Z).hom.mop = (MonoidalCategoryStruct.associator { unmop := Z } { unmop := Y } { unmop := X }).inv
                  @[simp]
                  theorem CategoryTheory.mop_inv_associator {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (X Y Z : C) :
                  (MonoidalCategoryStruct.associator X Y Z).inv.mop = (MonoidalCategoryStruct.associator { unmop := Z } { unmop := Y } { unmop := X }).hom

                  The (identity) equivalence between C and its monoidal opposite.

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

                    The (identity) equivalence between Cᴹᵒᵖ and C.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.MonoidalOpposite.unmopEquiv_inverse_obj_unmop (C : Type u₁) [Category.{v₁, u₁} C] (unmop : C) :
                      ((unmopEquiv C).inverse.obj unmop).unmop = unmop
                      @[simp]
                      theorem CategoryTheory.MonoidalOpposite.unmopEquiv_functor_map (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : Cᴹᵒᵖ} (f : X✝ Y✝) :
                      (unmopEquiv C).functor.map f = f.unmop
                      @[simp]
                      theorem CategoryTheory.MonoidalOpposite.unmopEquiv_functor_obj (C : Type u₁) [Category.{v₁, u₁} C] (self : Cᴹᵒᵖ) :
                      (unmopEquiv C).functor.obj self = self.unmop
                      @[simp]
                      theorem CategoryTheory.MonoidalOpposite.unmopEquiv_inverse_map_unmop (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : C} (f : X✝ Y✝) :
                      ((unmopEquiv C).inverse.map f).unmop = f
                      @[simp]
                      theorem CategoryTheory.MonoidalOpposite.mopMopEquivalence_inverse_map_unmop_unmop (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : C} (f : X✝ Y✝) :
                      ((mopMopEquivalence C).inverse.map f).unmop.unmop = f
                      @[simp]
                      theorem CategoryTheory.MonoidalOpposite.mopMopEquivalence_functor_map (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : Cᴹᵒᵖᴹᵒᵖ} (f : X✝ Y✝) :
                      (mopMopEquivalence C).functor.map f = f.unmop.unmop

                      The identification X ⊗ - = mop (- ⊗ unmop X) as a natural isomorphism.

                      Equations
                      Instances For
                        @[simp]
                        @[simp]

                        The identification unmop X ⊗ - = unmop (mop - ⊗ X) as a natural isomorphism.

                        Equations
                        Instances For
                          @[simp]
                          @[simp]

                          The identification - ⊗ X = mop (unmop X ⊗ -) as a natural isomorphism.

                          Equations
                          Instances For
                            @[simp]
                            @[simp]

                            The identification - ⊗ unmop X = unmop (X ⊗ mop -) as a natural isomorphism.

                            Equations
                            Instances For
                              @[simp]
                              @[simp]