ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.rightDistributor_hom_comp_biproduct_π
@[reassoc (attr := simp)]
theorem rightDistributor_hom_comp_biproduct_π {J : Type} [Fintype J] (f : J → C) (X : C) (j : J) :
    (rightDistributor f X).hom ≫ biproduct.π _ j = biproduct.π _ j ▷ X 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] (f : J → C) (X : C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.rightDistributor f X).hom
    (CategoryTheory.Limits.biproduct.π (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) j) =
  CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) X
-- CategoryTheory.biproduct_ι_comp_rightDistributor_hom
@[reassoc (attr := simp)]
theorem biproduct_ι_comp_rightDistributor_hom {J : Type} [Fintype J] (f : J → C) (X : C) (j : J) :
    (biproduct.ι _ j ▷ X) ≫ (rightDistributor f X).hom = biproduct.ι (fun j => f j ⊗ X) j 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] (f : J → C) (X : C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp
    (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X)
    (CategoryTheory.rightDistributor f X).hom =
  CategoryTheory.Limits.biproduct.ι (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) j
-- CategoryTheory.rightDistributor_inv_comp_biproduct_π
@[reassoc (attr := simp)]
theorem rightDistributor_inv_comp_biproduct_π {J : Type} [Fintype J] (f : J → C) (X : C) (j : J) :
    (rightDistributor f X).inv ≫ (biproduct.π _ j ▷ X) = biproduct.π _ j 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] (f : J → C) (X : C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.rightDistributor f X).inv
    (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) X) =
  CategoryTheory.Limits.biproduct.π (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) j
-- CategoryTheory.biproduct_ι_comp_rightDistributor_inv
@[reassoc (attr := simp)]
theorem biproduct_ι_comp_rightDistributor_inv {J : Type} [Fintype J] (f : J → C) (X : C) (j : J) :
    biproduct.ι _ j ≫ (rightDistributor f X).inv = biproduct.ι _ j ▷ X 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] (f : J → C) (X : C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp
    (CategoryTheory.Limits.biproduct.ι (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) j)
    (CategoryTheory.rightDistributor f X).inv =
  CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X
-- CategoryTheory.rightDistributor_assoc
theorem rightDistributor_assoc {J : Type} [Fintype J] (f : J → C) (X Y : C) :
    (rightDistributor f X ⊗ asIso (𝟙 Y)) ≪≫ rightDistributor _ Y =
      α_ (⨁ f) X Y ≪≫ rightDistributor f (X ⊗ Y) ≪≫ biproduct.mapIso fun j => (α_ _ X Y).symm 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] (f : J → C) (X Y : C)
Goal: (CategoryTheory.rightDistributor f X ⊗ CategoryTheory.asIso (CategoryTheory.CategoryStruct.id Y)) ≪≫
    CategoryTheory.rightDistributor (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) Y =
  CategoryTheory.MonoidalCategory.associator (⨁ f) X Y ≪≫
    CategoryTheory.rightDistributor f (CategoryTheory.MonoidalCategory.tensorObj X Y) ≪≫
      CategoryTheory.Limits.biproduct.mapIso fun j => (CategoryTheory.MonoidalCategory.associator (f j) X Y).symm
-- CategoryTheory.leftDistributor_rightDistributor_assoc
theorem leftDistributor_rightDistributor_assoc {J : Type _} [Fintype J]
    (X : C) (f : J → C) (Y : C) :
    (leftDistributor X f ⊗ asIso (𝟙 Y)) ≪≫ rightDistributor _ Y =
      α_ X (⨁ f) Y ≪≫
        (asIso (𝟙 X) ⊗ rightDistributor _ Y) ≪≫
          leftDistributor X _ ≪≫ biproduct.mapIso fun j => (α_ _ _ _).symm 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] (X : C) (f : J → C) (Y : C)
Goal: (CategoryTheory.leftDistributor X f ⊗ CategoryTheory.asIso (CategoryTheory.CategoryStruct.id Y)) ≪≫
    CategoryTheory.rightDistributor (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) Y =
  CategoryTheory.MonoidalCategory.associator X (⨁ f) Y ≪≫
    (CategoryTheory.asIso (CategoryTheory.CategoryStruct.id X) ⊗ CategoryTheory.rightDistributor f Y) ≪≫
      (CategoryTheory.leftDistributor X fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) Y) ≪≫
        CategoryTheory.Limits.biproduct.mapIso fun j => (CategoryTheory.MonoidalCategory.associator X (f j) Y).symm
-- CategoryTheory.leftDistributor_ext_left
@[ext]
theorem leftDistributor_ext_left {J : Type} [Fintype J] {X Y : C} {f : J → C} {g h : X ⊗ ⨁ f ⟶ Y}
    (w : ∀ j, (X ◁ biproduct.ι f j) ≫ g = (X ◁ biproduct.ι f j) ≫ h) : g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {X Y : C} {f : J → C} {g h : CategoryTheory.MonoidalCategory.tensorObj X (⨁ f) ⟶ Y} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.ι f j)) g =
      CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.ι f j)) h)
Goal: g = h
-- CategoryTheory.leftDistributor_ext_right
@[ext]
theorem leftDistributor_ext_right {J : Type} [Fintype J] {X Y : C} {f : J → C} {g h : X ⟶ Y ⊗ ⨁ f}
    (w : ∀ j, g ≫ (Y ◁ biproduct.π f j) = h ≫ (Y ◁ biproduct.π f j)) : g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {X Y : C} {f : J → C} {g h : X ⟶ CategoryTheory.MonoidalCategory.tensorObj Y (⨁ f)} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp g
        (CategoryTheory.MonoidalCategory.whiskerLeft Y (CategoryTheory.Limits.biproduct.π f j)) =
      CategoryTheory.CategoryStruct.comp h
        (CategoryTheory.MonoidalCategory.whiskerLeft Y (CategoryTheory.Limits.biproduct.π f j)))
Goal: g = h
-- CategoryTheory.leftDistributor_ext₂_left
@[ext]
theorem leftDistributor_ext₂_left {J : Type} [Fintype J]
    {X Y Z : C} {f : J → C} {g h : X ⊗ (Y ⊗ ⨁ f) ⟶ Z}
    (w : ∀ j, (X ◁ (Y ◁ biproduct.ι f j)) ≫ g = (X ◁ (Y ◁ biproduct.ι f j)) ≫ h) :
    g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {X Y Z : C} {f : J → C} {g h : CategoryTheory.MonoidalCategory.tensorObj X (CategoryTheory.MonoidalCategory.tensorObj Y (⨁ f)) ⟶ Z} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerLeft X
          (CategoryTheory.MonoidalCategory.whiskerLeft Y (CategoryTheory.Limits.biproduct.ι f j)))
        g =
      CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerLeft X
          (CategoryTheory.MonoidalCategory.whiskerLeft Y (CategoryTheory.Limits.biproduct.ι f j)))
        h)
Goal: g = h
-- CategoryTheory.leftDistributor_ext₂_right
@[ext]
theorem leftDistributor_ext₂_right {J : Type} [Fintype J]
    {X Y Z : C} {f : J → C} {g h : X ⟶ Y ⊗ (Z ⊗ ⨁ f)}
    (w : ∀ j, g ≫ (Y ◁ (Z ◁ biproduct.π f j)) = h ≫ (Y ◁ (Z ◁ biproduct.π f j))) :
    g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {X Y Z : C} {f : J → C} {g h : X ⟶ CategoryTheory.MonoidalCategory.tensorObj Y (CategoryTheory.MonoidalCategory.tensorObj Z (⨁ f))} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp g
        (CategoryTheory.MonoidalCategory.whiskerLeft Y
          (CategoryTheory.MonoidalCategory.whiskerLeft Z (CategoryTheory.Limits.biproduct.π f j))) =
      CategoryTheory.CategoryStruct.comp h
        (CategoryTheory.MonoidalCategory.whiskerLeft Y
          (CategoryTheory.MonoidalCategory.whiskerLeft Z (CategoryTheory.Limits.biproduct.π f j))))
Goal: g = h
-- CategoryTheory.rightDistributor_ext_left
@[ext]
theorem rightDistributor_ext_left {J : Type} [Fintype J]
    {f : J → C} {X Y : C} {g h : (⨁ f) ⊗ X ⟶ Y}
    (w : ∀ j, (biproduct.ι f j ▷ X) ≫ g = (biproduct.ι f j ▷ X) ≫ h) : g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {f : J → C} {X Y : C} {g h : CategoryTheory.MonoidalCategory.tensorObj (⨁ f) X ⟶ Y} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X) g =
      CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X) h)
Goal: g = h
-- CategoryTheory.rightDistributor_ext_right
@[ext]
theorem rightDistributor_ext_right {J : Type} [Fintype J]
    {f : J → C} {X Y : C} {g h : X ⟶ (⨁ f) ⊗ Y}
    (w : ∀ j, g ≫ (biproduct.π f j ▷ Y) = h ≫ (biproduct.π f j ▷ Y)) : g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {f : J → C} {X Y : C} {g h : X ⟶ CategoryTheory.MonoidalCategory.tensorObj (⨁ f) Y} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp g
        (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) Y) =
      CategoryTheory.CategoryStruct.comp h
        (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) Y))
Goal: g = h
-- CategoryTheory.rightDistributor_ext₂_left
@[ext]
theorem rightDistributor_ext₂_left {J : Type} [Fintype J]
    {f : J → C} {X Y Z : C} {g h : ((⨁ f) ⊗ X) ⊗ Y ⟶ Z}
    (w : ∀ j, ((biproduct.ι f j ▷ X) ▷ Y) ≫ g = ((biproduct.ι f j ▷ X) ▷ Y) ≫ h) :
    g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {f : J → C} {X Y Z : C} {g h : CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj (⨁ f) X) Y ⟶ Z} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerRight
          (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X) Y)
        g =
      CategoryTheory.CategoryStruct.comp
        (CategoryTheory.MonoidalCategory.whiskerRight
          (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X) Y)
        h)
Goal: g = h
-- CategoryTheory.rightDistributor_ext₂_right
@[ext]
theorem rightDistributor_ext₂_right {J : Type} [Fintype J]
    {f : J → C} {X Y Z : C} {g h : X ⟶ ((⨁ f) ⊗ Y) ⊗ Z}
    (w : ∀ j, g ≫ ((biproduct.π f j ▷ Y) ▷ Z) = h ≫ ((biproduct.π f j ▷ Y) ▷ Z)) :
    g = h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Fintype J] {f : J → C} {X Y Z : C} {g h : X ⟶ CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj (⨁ f) Y) Z} (w :
  ∀ (j : J),
    CategoryTheory.CategoryStruct.comp g
        (CategoryTheory.MonoidalCategory.whiskerRight
          (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) Y) Z) =
      CategoryTheory.CategoryStruct.comp h
        (CategoryTheory.MonoidalCategory.whiskerRight
          (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) Y) Z))
Goal: g = h
-- CategoryTheory.MonoidalOpposite.mop_injective
theorem mop_injective : Function.Injective (mop : C → Cᴹᵒᵖ) 
Arguments: {C : Type u₁}
Goal: Function.Injective CategoryTheory.MonoidalOpposite.mop
-- CategoryTheory.MonoidalOpposite.unmop_injective
theorem unmop_injective : Function.Injective (unmop : Cᴹᵒᵖ → C) 
Arguments: {C : Type u₁}
Goal: Function.Injective CategoryTheory.MonoidalOpposite.unmop
-- CategoryTheory.MonoidalOpposite.mop_inj_iff
theorem mop_inj_iff (x y : C) : mop x = mop y ↔ x = y 
Arguments: {C : Type u₁} (x y : C)
Goal: { unmop := x } = { unmop := y } ↔ x = y
-- CategoryTheory.MonoidalOpposite.unmop_inj_iff
@[simp]
theorem unmop_inj_iff (x y : Cᴹᵒᵖ) : unmop x = unmop y ↔ x = y 
Arguments: {C : Type u₁} (x y : Cᴹᵒᵖ)
Goal: x.unmop = y.unmop ↔ x = y
-- CategoryTheory.MonoidalOpposite.mop_unmop
@[simp]
theorem mop_unmop (X : Cᴹᵒᵖ) : mop (unmop X) = X 
Arguments: {C : Type u₁} (X : Cᴹᵒᵖ)
Goal: { unmop := X.unmop } = X
-- CategoryTheory.MonoidalOpposite.unmop_mop
theorem unmop_mop (X : C) : unmop (mop X) = X 
Arguments: {C : Type u₁} (X : C)
Goal: { unmop := X }.unmop = X
-- Quiver.Hom.mop_inj
theorem mop_inj {X Y : C} :
    Function.Injective (Quiver.Hom.mop : (X ⟶ Y) → (mop' X ⟶ mop' Y)) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C}
Goal: Function.Injective Quiver.Hom.mop
-- Quiver.Hom.unmop_inj
theorem unmop_inj {X Y : Cᴹᵒᵖ} :
    Function.Injective (Quiver.Hom.unmop : (X ⟶ Y) → (unmop' X ⟶ unmop' Y)) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : Cᴹᵒᵖ}
Goal: Function.Injective Quiver.Hom.unmop
-- Quiver.Hom.unmop_mop
@[simp]
theorem unmop_mop {X Y : C} {f : X ⟶ Y} : f.mop.unmop = f 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} {f : X ⟶ Y}
Goal: f.mop.unmop = f
-- Quiver.Hom.mop_unmop
@[simp]
theorem mop_unmop {X Y : Cᴹᵒᵖ} {f : X ⟶ Y} : f.unmop.mop = f 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : Cᴹᵒᵖ} {f : X ⟶ Y}
Goal: f.unmop.mop = f
-- CategoryTheory.mop_comp
@[simp]
theorem mop_comp {X Y Z : C} {f : X ⟶ Y} {g : Y ⟶ Z} :
    (f ≫ g).mop = f.mop ≫ g.mop 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} {f : X ⟶ Y} {g : Y ⟶ Z}
Goal: (f ≫ g).mop = f.mop ≫ g.mop
-- CategoryTheory.mop_id
@[simp]
theorem mop_id {X : C} : (𝟙 X).mop = 𝟙 (mop X) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X : C}
Goal: (𝟙 X).mop = 𝟙 { unmop := X }
-- CategoryTheory.unmop_comp
@[simp]
theorem unmop_comp {X Y Z : Cᴹᵒᵖ} {f : X ⟶ Y} {g : Y ⟶ Z} :
    (f ≫ g).unmop = f.unmop ≫ g.unmop 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᴹᵒᵖ} {f : X ⟶ Y} {g : Y ⟶ Z}
Goal: (f ≫ g).unmop = f.unmop ≫ g.unmop
-- CategoryTheory.unmop_id
@[simp]
theorem unmop_id {X : Cᴹᵒᵖ} : (𝟙 X).unmop = 𝟙 (unmop X) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X : Cᴹᵒᵖ}
Goal: (𝟙 X).unmop = 𝟙 X.unmop
-- CategoryTheory.unmop_id_mop
@[simp]
theorem unmop_id_mop {X : C} : (𝟙 (mop X)).unmop = 𝟙 X 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X : C}
Goal: (𝟙 { unmop := X }).unmop = 𝟙 X
-- CategoryTheory.mop_id_unmop
@[simp]
theorem mop_id_unmop {X : Cᴹᵒᵖ} : (𝟙 (unmop X)).mop = 𝟙 X 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X : Cᴹᵒᵖ}
Goal: (𝟙 X.unmop).mop = 𝟙 X
-- CategoryTheory.mopFunctor_obj
@[simps obj map] -- need to specify `obj, map` or else we generate `mopFunctor_obj_unmop`
def mopFunctor : C ⥤ Cᴹᵒᵖ 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] (unmop : C)
Goal: (CategoryTheory.mopFunctor C).obj unmop = { unmop := unmop }
-- CategoryTheory.mopFunctor_map
@[simps obj map] -- need to specify `obj, map` or else we generate `mopFunctor_obj_unmop`
def mopFunctor : C ⥤ Cᴹᵒᵖ 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C]
Goal: ∀ {X Y : C} (f : X ⟶ Y), (CategoryTheory.mopFunctor C).map f = f.mop
-- CategoryTheory.unmopFunctor_obj
@[simps obj map] -- not necessary but the symmetry with `mopFunctor` looks nicer
def unmopFunctor : Cᴹᵒᵖ ⥤ C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] (self : Cᴹᵒᵖ)
Goal: (CategoryTheory.unmopFunctor C).obj self = self.unmop
-- CategoryTheory.unmopFunctor_map
@[simps obj map] -- not necessary but the symmetry with `mopFunctor` looks nicer
def unmopFunctor : Cᴹᵒᵖ ⥤ C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C]
Goal: ∀ {X Y : Cᴹᵒᵖ} (f : X ⟶ Y), (CategoryTheory.unmopFunctor C).map f = f.unmop
-- CategoryTheory.op_tensorObj
@[simp] lemma op_tensorObj (X Y : C) : op (X ⊗ Y) = op X ⊗ op Y 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y : C)
Goal: Opposite.op (CategoryTheory.MonoidalCategory.tensorObj X Y) =
  CategoryTheory.MonoidalCategory.tensorObj (Opposite.op X) (Opposite.op Y)
-- CategoryTheory.unop_tensorObj
@[simp] lemma unop_tensorObj (X Y : Cᵒᵖ) : unop (X ⊗ Y) = unop X ⊗ unop Y 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y : Cᵒᵖ)
Goal: Opposite.unop (CategoryTheory.MonoidalCategory.tensorObj X Y) =
  CategoryTheory.MonoidalCategory.tensorObj (Opposite.unop X) (Opposite.unop Y)
-- CategoryTheory.op_tensorUnit
@[simp] lemma op_tensorUnit : op (𝟙_ C) = 𝟙_ Cᵒᵖ 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: Opposite.op (𝟙_ C) = 𝟙_ Cᵒᵖ
-- CategoryTheory.unop_tensorUnit
@[simp] lemma unop_tensorUnit : unop (𝟙_ Cᵒᵖ) = 𝟙_ C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: Opposite.unop (𝟙_ Cᵒᵖ) = 𝟙_ C
-- CategoryTheory.op_tensorHom
@[simp] lemma op_tensorHom {X₁ Y₁ X₂ Y₂ : C} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂) :
    (f ⊗ g).op = f.op ⊗ g.op 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X₁ Y₁ X₂ Y₂ : C} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂)
Goal: (CategoryTheory.MonoidalCategory.tensorHom f g).op = CategoryTheory.MonoidalCategory.tensorHom f.op g.op
-- CategoryTheory.unop_tensorHom
@[simp] lemma unop_tensorHom {X₁ Y₁ X₂ Y₂ : Cᵒᵖ} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂) :
    (f ⊗ g).unop = f.unop ⊗ g.unop 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X₁ Y₁ X₂ Y₂ : Cᵒᵖ} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂)
Goal: (CategoryTheory.MonoidalCategory.tensorHom f g).unop = CategoryTheory.MonoidalCategory.tensorHom f.unop g.unop
-- CategoryTheory.op_whiskerLeft
@[simp] lemma op_whiskerLeft (X : C) {Y Z : C} (f : Y ⟶ Z) :
    (X ◁ f).op = op X ◁ f.op 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X : C) {Y Z : C} (f : Y ⟶ Z)
Goal: (CategoryTheory.MonoidalCategory.whiskerLeft X f).op = CategoryTheory.MonoidalCategory.whiskerLeft (Opposite.op X) f.op
-- CategoryTheory.unop_whiskerLeft
@[simp] lemma unop_whiskerLeft (X : Cᵒᵖ) {Y Z : Cᵒᵖ} (f : Y ⟶ Z) :
    (X ◁ f).unop =  unop X ◁ f.unop 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X : Cᵒᵖ) {Y Z : Cᵒᵖ} (f : Y ⟶ Z)
Goal: (CategoryTheory.MonoidalCategory.whiskerLeft X f).unop =
  CategoryTheory.MonoidalCategory.whiskerLeft (Opposite.unop X) f.unop
-- CategoryTheory.op_whiskerRight
@[simp] lemma op_whiskerRight {X Y : C} (f : X ⟶ Y) (Z : C) :
    (f ▷ Z).op = f.op ▷ op Z 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X Y : C} (f : X ⟶ Y) (Z : C)
Goal: (CategoryTheory.MonoidalCategory.whiskerRight f Z).op =
  CategoryTheory.MonoidalCategory.whiskerRight f.op (Opposite.op Z)
-- CategoryTheory.unop_whiskerRight
@[simp] lemma unop_whiskerRight {X Y : Cᵒᵖ} (f : X ⟶ Y) (Z : Cᵒᵖ) :
    (f ▷ Z).unop = f.unop ▷ unop Z 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X Y : Cᵒᵖ} (f : X ⟶ Y) (Z : Cᵒᵖ)
Goal: (CategoryTheory.MonoidalCategory.whiskerRight f Z).unop =
  CategoryTheory.MonoidalCategory.whiskerRight f.unop (Opposite.unop Z)
-- CategoryTheory.op_associator
@[simp] lemma op_associator (X Y Z : C) :
    (α_ X Y Z).op = (α_ (op X) (op Y) (op Z)).symm 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).op =
  (CategoryTheory.MonoidalCategory.associator (Opposite.op X) (Opposite.op Y) (Opposite.op Z)).symm
-- CategoryTheory.unop_associator
@[simp] lemma unop_associator (X Y Z : Cᵒᵖ) :
    (α_ X Y Z).unop = (α_ (unop X) (unop Y) (unop Z)).symm 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y Z : Cᵒᵖ)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).unop =
  (CategoryTheory.MonoidalCategory.associator (Opposite.unop X) (Opposite.unop Y) (Opposite.unop Z)).symm
-- CategoryTheory.op_hom_associator
@[simp] lemma op_hom_associator (X Y Z : C) :
    (α_ X Y Z).hom.op = (α_ (op X) (op Y) (op Z)).inv 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).hom.op =
  (CategoryTheory.MonoidalCategory.associator (Opposite.op X) (Opposite.op Y) (Opposite.op Z)).inv
-- CategoryTheory.unop_hom_associator
@[simp] lemma unop_hom_associator (X Y Z : Cᵒᵖ) :
    (α_ X Y Z).hom.unop = (α_ (unop X) (unop Y) (unop Z)).inv 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y Z : Cᵒᵖ)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).hom.unop =
  (CategoryTheory.MonoidalCategory.associator (Opposite.unop X) (Opposite.unop Y) (Opposite.unop Z)).inv
-- CategoryTheory.op_inv_associator
@[simp] lemma op_inv_associator (X Y Z : C) :
    (α_ X Y Z).inv.op = (α_ (op X) (op Y) (op Z)).hom 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).inv.op =
  (CategoryTheory.MonoidalCategory.associator (Opposite.op X) (Opposite.op Y) (Opposite.op Z)).hom
-- CategoryTheory.unop_inv_associator
@[simp] lemma unop_inv_associator (X Y Z : Cᵒᵖ) :
    (α_ X Y Z).inv.unop = (α_ (unop X) (unop Y) (unop Z)).hom 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y Z : Cᵒᵖ)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).inv.unop =
  (CategoryTheory.MonoidalCategory.associator (Opposite.unop X) (Opposite.unop Y) (Opposite.unop Z)).hom
-- CategoryTheory.op_leftUnitor
@[simp] lemma op_leftUnitor (X : C) : (λ_ X).op = (λ_ (op X)).symm 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.leftUnitor X).op = (CategoryTheory.MonoidalCategory.leftUnitor (Opposite.op X)).symm
-- CategoryTheory.unop_leftUnitor
@[simp] lemma unop_leftUnitor (X : Cᵒᵖ) : (λ_ X).unop = (λ_ (unop X)).symm 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X : Cᵒᵖ)
Goal: (CategoryTheory.MonoidalCategory.leftUnitor X).unop =
  (CategoryTheory.MonoidalCategory.leftUnitor (Opposite.unop X)).symm