ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.associator_hom_apply_2_2
@[simp] theorem associator_hom_apply_2_2 {X Y Z : Type u} {x} :
    (((α_ X Y Z).hom : (X ⊗ Y) ⊗ Z → X ⊗ Y ⊗ Z) x).2.2 = x.2 
Arguments: {X Y Z : Type u} {x : (X ⊗ Y) ⊗ Z}
Goal: ((α_ X Y Z).hom x).2.2 = x.2
-- CategoryTheory.associator_inv_apply_1_1
@[simp] theorem associator_inv_apply_1_1 {X Y Z : Type u} {x} :
    (((α_ X Y Z).inv : X ⊗ Y ⊗ Z → (X ⊗ Y) ⊗ Z) x).1.1 = x.1 
Arguments: {X Y Z : Type u} {x : X ⊗ Y ⊗ Z}
Goal: ((α_ X Y Z).inv x).1.1 = x.1
-- CategoryTheory.associator_inv_apply_1_2
@[simp] theorem associator_inv_apply_1_2 {X Y Z : Type u} {x} :
    (((α_ X Y Z).inv : X ⊗ Y ⊗ Z → (X ⊗ Y) ⊗ Z) x).1.2 = x.2.1 
Arguments: {X Y Z : Type u} {x : X ⊗ Y ⊗ Z}
Goal: ((α_ X Y Z).inv x).1.2 = x.2.1
-- CategoryTheory.associator_inv_apply_2
@[simp] theorem associator_inv_apply_2 {X Y Z : Type u} {x} :
    (((α_ X Y Z).inv : X ⊗ Y ⊗ Z → (X ⊗ Y) ⊗ Z) x).2 = x.2.2 
Arguments: {X Y Z : Type u} {x : X ⊗ Y ⊗ Z}
Goal: ((α_ X Y Z).inv x).2 = x.2.2
-- CategoryTheory.braiding_hom_apply
@[simp]
theorem braiding_hom_apply {X Y : Type u} {x : X} {y : Y} :
    ((β_ X Y).hom : X ⊗ Y → Y ⊗ X) (x, y) = (y, x) 
Arguments: {X Y : Type u} {x : X} {y : Y}
Goal: (β_ X Y).hom (x, y) = (y, x)
-- CategoryTheory.braiding_inv_apply
@[simp]
theorem braiding_inv_apply {X Y : Type u} {x : X} {y : Y} :
    ((β_ X Y).inv : Y ⊗ X → X ⊗ Y) (y, x) = (x, y) 
Arguments: {X Y : Type u} {x : X} {y : Y}
Goal: (β_ X Y).inv (y, x) = (x, y)
-- CategoryTheory.MonoidalNatTrans.tensor
@[ext]
structure MonoidalNatTrans (F G : LaxMonoidalFunctor C D) extends
  NatTrans F.toFunctor G.toFunctor where
    unit : F.ε ≫ app (𝟙_ C) = G.ε := by aesop_cat
    tensor : ∀ X Y, F.μ _ _ ≫ app (X ⊗ Y) = (app X ⊗ app Y) ≫ G.μ _ _ := by aesop_cat
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G : CategoryTheory.LaxMonoidalFunctor C D} (self : CategoryTheory.MonoidalNatTrans F G) (X Y : C)
Goal: F.μ X Y ≫ self.app (CategoryTheory.MonoidalCategory.tensorObj X Y) =
  CategoryTheory.MonoidalCategory.tensorHom (self.app X) (self.app Y) ≫ G.μ X Y
-- CategoryTheory.MonoidalNatTrans.unit
@[ext]
structure MonoidalNatTrans (F G : LaxMonoidalFunctor C D) extends
  NatTrans F.toFunctor G.toFunctor where
    unit : F.ε ≫ app (𝟙_ C) = G.ε := by aesop_cat
    tensor : ∀ X Y, F.μ _ _ ≫ app (X ⊗ Y) = (app X ⊗ app Y) ≫ G.μ _ _ := by aesop_cat
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G : CategoryTheory.LaxMonoidalFunctor C D} (self : CategoryTheory.MonoidalNatTrans F G)
Goal: F.ε ≫ self.app (𝟙_ C) = G.ε
-- CategoryTheory.MonoidalNatTrans.id_toNatTrans_app
@[simps!]
def id (F : LaxMonoidalFunctor C D) : MonoidalNatTrans F F 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (F : CategoryTheory.LaxMonoidalFunctor C D) (X : C)
Goal: (CategoryTheory.MonoidalNatTrans.id F).app X = 𝟙 (F.obj X)
-- CategoryTheory.MonoidalNatTrans.vcomp_toNatTrans_app
@[simps!]
def vcomp {F G H : LaxMonoidalFunctor C D} (α : MonoidalNatTrans F G) (β : MonoidalNatTrans G H) :
    MonoidalNatTrans F H 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G H : CategoryTheory.LaxMonoidalFunctor C D} (α : CategoryTheory.MonoidalNatTrans F G) (β : CategoryTheory.MonoidalNatTrans G H) (X : C)
Goal: (α.vcomp β).app X = α.app X ≫ β.app X
-- CategoryTheory.MonoidalNatTrans.comp_toNatTrans_lax
@[simp]
theorem comp_toNatTrans_lax {F G H : LaxMonoidalFunctor C D} {α : F ⟶ G} {β : G ⟶ H} :
    (α ≫ β).toNatTrans = @CategoryStruct.comp (C ⥤ D) _ _ _ _ α.toNatTrans β.toNatTrans 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G H : CategoryTheory.LaxMonoidalFunctor C D} {α : F ⟶ G} {β : G ⟶ H}
Goal: (α ≫ β).toNatTrans = α.toNatTrans ≫ β.toNatTrans
-- CategoryTheory.MonoidalNatTrans.ext'
@[ext]
lemma ext' {F G : LaxMonoidalFunctor C D} {α β : F ⟶ G} (w : ∀ X : C, α.app X = β.app X) : α = β 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G : CategoryTheory.LaxMonoidalFunctor C D} {α β : F ⟶ G} (w : ∀ (X : C), α.app X = β.app X)
Goal: α = β
-- CategoryTheory.MonoidalNatTrans.comp_toNatTrans
@[simp]
theorem comp_toNatTrans {F G H : MonoidalFunctor C D} {α : F ⟶ G} {β : G ⟶ H} :
    (α ≫ β).toNatTrans = @CategoryStruct.comp (C ⥤ D) _ _ _ _ α.toNatTrans β.toNatTrans 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G H : CategoryTheory.MonoidalFunctor C D} {α : F ⟶ G} {β : G ⟶ H}
Goal: (α ≫ β).toNatTrans = α.toNatTrans ≫ β.toNatTrans
-- CategoryTheory.MonoidalNatTrans.hcomp_toNatTrans
@[simps]
def hcomp {F G : LaxMonoidalFunctor C D} {H K : LaxMonoidalFunctor D E} (α : MonoidalNatTrans F G)
    (β : MonoidalNatTrans H K) : MonoidalNatTrans (F ⊗⋙ H) (G ⊗⋙ K) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] {F G : CategoryTheory.LaxMonoidalFunctor C D} {H K : CategoryTheory.LaxMonoidalFunctor D E} (α : CategoryTheory.MonoidalNatTrans F G) (β : CategoryTheory.MonoidalNatTrans H K)
Goal: (α.hcomp β).toNatTrans = α.toNatTrans ◫ β.toNatTrans
-- CategoryTheory.MonoidalNatTrans.prod_toNatTrans_app
@[simps]
def prod {F G : LaxMonoidalFunctor C D} {H K : LaxMonoidalFunctor C E} (α : MonoidalNatTrans F G)
    (β : MonoidalNatTrans H K) : MonoidalNatTrans (F.prod' H) (G.prod' K) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] {F G : CategoryTheory.LaxMonoidalFunctor C D} {H K : CategoryTheory.LaxMonoidalFunctor C E} (α : CategoryTheory.MonoidalNatTrans F G) (β : CategoryTheory.MonoidalNatTrans H K) (X : C)
Goal: (α.prod β).app X = (α.app X, β.app X)
-- CategoryTheory.MonoidalNatIso.ofComponents.hom_app
@[simp]
theorem ofComponents.hom_app (app : ∀ X : C, F.obj X ≅ G.obj X) (naturality) (unit) (tensor) (X) :
    (ofComponents app naturality unit tensor).hom.app X = (app X).hom 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G : CategoryTheory.LaxMonoidalFunctor C D} (app : (X : C) → F.obj X ≅ G.obj X) (naturality : ∀ {X Y : C} (f : X ⟶ Y), F.map f ≫ (app Y).hom = (app X).hom ≫ G.map f) (unit : F.ε ≫ (app (𝟙_ C)).hom = G.ε) (tensor :
  ∀ (X Y : C),
    F.μ X Y ≫ (app (CategoryTheory.MonoidalCategory.tensorObj X Y)).hom =
      CategoryTheory.MonoidalCategory.tensorHom (app X).hom (app Y).hom ≫ G.μ X Y) (X : C)
Goal: (CategoryTheory.MonoidalNatIso.ofComponents app naturality unit tensor).hom.app X = (app X).hom
-- CategoryTheory.MonoidalNatIso.ofComponents.inv_app
@[simp]
theorem ofComponents.inv_app (app : ∀ X : C, F.obj X ≅ G.obj X) (naturality) (unit) (tensor) (X) :
    (ofComponents app naturality unit tensor).inv.app X = (app X).inv 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {F G : CategoryTheory.LaxMonoidalFunctor C D} (app : (X : C) → F.obj X ≅ G.obj X) (naturality : ∀ {X Y : C} (f : X ⟶ Y), F.map f ≫ (app Y).hom = (app X).hom ≫ G.map f) (unit : F.ε ≫ (app (𝟙_ C)).hom = G.ε) (tensor :
  ∀ (X Y : C),
    F.μ X Y ≫ (app (CategoryTheory.MonoidalCategory.tensorObj X Y)).hom =
      CategoryTheory.MonoidalCategory.tensorHom (app X).hom (app Y).hom ≫ G.μ X Y) (X : C)
Goal: (CategoryTheory.MonoidalNatIso.ofComponents app naturality unit tensor).inv.app X = (app X).inv
-- CategoryTheory.monoidalCounit_toNatTrans
@[simps]
def monoidalCounit :
    (monoidalAdjoint F h) ⊗⋙ F.toLaxMonoidalFunctor ⟶ LaxMonoidalFunctor.id D 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (F : CategoryTheory.MonoidalFunctor C D) {G : D ⥤ C} (h : F.toFunctor ⊣ G)
Goal: (CategoryTheory.monoidalCounit F h).toNatTrans = h.counit
-- CategoryTheory.MonoidalPreadditive.add_whiskerRight
class MonoidalPreadditive : Prop where
  whiskerLeft_zero : ∀ {X Y Z : C}, X ◁ (0 : Y ⟶ Z) = 0 := by aesop_cat
  zero_whiskerRight : ∀ {X Y Z : C}, (0 : Y ⟶ Z) ▷ X = 0 := by aesop_cat
  whiskerLeft_add : ∀ {X Y Z : C} (f g : Y ⟶ Z), X ◁ (f + g) = X ◁ f + X ◁ g := by aesop_cat
  add_whiskerRight : ∀ {X Y Z : C} (f g : Y ⟶ Z), (f + g) ▷ X = f ▷ X + g ▷ X := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [self : CategoryTheory.MonoidalPreadditive C] {X Y Z : C} (f g : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.whiskerRight (f + g) X =
  CategoryTheory.MonoidalCategory.whiskerRight f X + CategoryTheory.MonoidalCategory.whiskerRight g X
-- CategoryTheory.MonoidalPreadditive.whiskerLeft_add
class MonoidalPreadditive : Prop where
  whiskerLeft_zero : ∀ {X Y Z : C}, X ◁ (0 : Y ⟶ Z) = 0 := by aesop_cat
  zero_whiskerRight : ∀ {X Y Z : C}, (0 : Y ⟶ Z) ▷ X = 0 := by aesop_cat
  whiskerLeft_add : ∀ {X Y Z : C} (f g : Y ⟶ Z), X ◁ (f + g) = X ◁ f + X ◁ g := by aesop_cat
  add_whiskerRight : ∀ {X Y Z : C} (f g : Y ⟶ Z), (f + g) ▷ X = f ▷ X + g ▷ X := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [self : CategoryTheory.MonoidalPreadditive C] {X Y Z : C} (f g : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.whiskerLeft X (f + g) =
  CategoryTheory.MonoidalCategory.whiskerLeft X f + CategoryTheory.MonoidalCategory.whiskerLeft X g
-- CategoryTheory.MonoidalPreadditive.whiskerLeft_zero
class MonoidalPreadditive : Prop where
  whiskerLeft_zero : ∀ {X Y Z : C}, X ◁ (0 : Y ⟶ Z) = 0 := by aesop_cat
  zero_whiskerRight : ∀ {X Y Z : C}, (0 : Y ⟶ Z) ▷ X = 0 := by aesop_cat
  whiskerLeft_add : ∀ {X Y Z : C} (f g : Y ⟶ Z), X ◁ (f + g) = X ◁ f + X ◁ g := by aesop_cat
  add_whiskerRight : ∀ {X Y Z : C} (f g : Y ⟶ Z), (f + g) ▷ X = f ▷ X + g ▷ X := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [self : CategoryTheory.MonoidalPreadditive C] {X Y Z : C}
Goal: CategoryTheory.MonoidalCategory.whiskerLeft X 0 = 0
-- CategoryTheory.MonoidalPreadditive.zero_whiskerRight
class MonoidalPreadditive : Prop where
  whiskerLeft_zero : ∀ {X Y Z : C}, X ◁ (0 : Y ⟶ Z) = 0 := by aesop_cat
  zero_whiskerRight : ∀ {X Y Z : C}, (0 : Y ⟶ Z) ▷ X = 0 := by aesop_cat
  whiskerLeft_add : ∀ {X Y Z : C} (f g : Y ⟶ Z), X ◁ (f + g) = X ◁ f + X ◁ g := by aesop_cat
  add_whiskerRight : ∀ {X Y Z : C} (f g : Y ⟶ Z), (f + g) ▷ X = f ▷ X + g ▷ X := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [self : CategoryTheory.MonoidalPreadditive C] {X Y Z : C}
Goal: CategoryTheory.MonoidalCategory.whiskerRight 0 X = 0
-- CategoryTheory.MonoidalPreadditive.tensor_zero
@[simp (low)]
theorem tensor_zero {W X Y Z : C} (f : W ⟶ X) : f ⊗ (0 : Y ⟶ Z) = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {W X Y Z : C} (f : W ⟶ X)
Goal: CategoryTheory.MonoidalCategory.tensorHom f 0 = 0
-- CategoryTheory.MonoidalPreadditive.zero_tensor
@[simp (low)]
theorem zero_tensor {W X Y Z : C} (f : Y ⟶ Z) : (0 : W ⟶ X) ⊗ f = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {W X Y Z : C} (f : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.tensorHom 0 f = 0
-- CategoryTheory.MonoidalPreadditive.tensor_add
theorem tensor_add {W X Y Z : C} (f : W ⟶ X) (g h : Y ⟶ Z) : f ⊗ (g + h) = f ⊗ g + f ⊗ h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {W X Y Z : C} (f : W ⟶ X) (g h : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.tensorHom f (g + h) =
  CategoryTheory.MonoidalCategory.tensorHom f g + CategoryTheory.MonoidalCategory.tensorHom f h
-- CategoryTheory.MonoidalPreadditive.add_tensor
theorem add_tensor {W X Y Z : C} (f g : W ⟶ X) (h : Y ⟶ Z) : (f + g) ⊗ h = f ⊗ h + g ⊗ h 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {W X Y Z : C} (f g : W ⟶ X) (h : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.tensorHom (f + g) h =
  CategoryTheory.MonoidalCategory.tensorHom f h + CategoryTheory.MonoidalCategory.tensorHom g h
-- CategoryTheory.monoidalPreadditive_of_faithful
theorem monoidalPreadditive_of_faithful {D} [Category D] [Preadditive D] [MonoidalCategory D]
    (F : MonoidalFunctor D C) [F.Faithful] [F.Additive] :
    MonoidalPreadditive D 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {D : Type u_2} [CategoryTheory.Category.{u_3, u_2} D] [CategoryTheory.Preadditive D] [CategoryTheory.MonoidalCategory D] (F : CategoryTheory.MonoidalFunctor D C) [F.Faithful] [F.Additive]
Goal: CategoryTheory.MonoidalPreadditive D
-- CategoryTheory.whiskerLeft_sum
theorem whiskerLeft_sum (P : C) {Q R : C} {J : Type*} (s : Finset J) (g : J → (Q ⟶ R)) :
    P ◁ ∑ j ∈ s, g j = ∑ j ∈ s, P ◁ g j 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] (P : C) {Q R : C} {J : Type u_2} (s : Finset J) (g : J → (Q ⟶ R))
Goal: CategoryTheory.MonoidalCategory.whiskerLeft P (∑ j ∈ s, g j) =
  ∑ j ∈ s, CategoryTheory.MonoidalCategory.whiskerLeft P (g j)
-- CategoryTheory.sum_whiskerRight
theorem sum_whiskerRight {Q R : C} {J : Type*} (s : Finset J) (g : J → (Q ⟶ R)) (P : C) :
    (∑ j ∈ s, g j) ▷ P = ∑ j ∈ s, g j ▷ P 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {Q R : C} {J : Type u_2} (s : Finset J) (g : J → (Q ⟶ R)) (P : C)
Goal: CategoryTheory.MonoidalCategory.whiskerRight (∑ j ∈ s, g j) P =
  ∑ j ∈ s, CategoryTheory.MonoidalCategory.whiskerRight (g j) P
-- CategoryTheory.tensor_sum
theorem tensor_sum {P Q R S : C} {J : Type*} (s : Finset J) (f : P ⟶ Q) (g : J → (R ⟶ S)) :
    (f ⊗ ∑ j ∈ s, g j) = ∑ j ∈ s, f ⊗ g j 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {P Q R S : C} {J : Type u_2} (s : Finset J) (f : P ⟶ Q) (g : J → (R ⟶ S))
Goal: CategoryTheory.MonoidalCategory.tensorHom f (∑ j ∈ s, g j) = ∑ j ∈ s, CategoryTheory.MonoidalCategory.tensorHom f (g j)
-- CategoryTheory.sum_tensor
theorem sum_tensor {P Q R S : C} {J : Type*} (s : Finset J) (f : P ⟶ Q) (g : J → (R ⟶ S)) :
    (∑ j ∈ s, g j) ⊗ f = ∑ j ∈ s, g j ⊗ f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] {P Q R S : C} {J : Type u_2} (s : Finset J) (f : P ⟶ Q) (g : J → (R ⟶ S))
Goal: CategoryTheory.MonoidalCategory.tensorHom (∑ j ∈ s, g j) f = ∑ j ∈ s, CategoryTheory.MonoidalCategory.tensorHom (g j) f
-- CategoryTheory.leftDistributor_hom
theorem leftDistributor_hom {J : Type} [Fintype J] (X : C) (f : J → C) :
    (leftDistributor X f).hom =
      ∑ j : J, (X ◁ biproduct.π f j) ≫ biproduct.ι (fun j => X ⊗ f j) 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] (X : C) (f : J → C)
Goal: (CategoryTheory.leftDistributor X f).hom =
  ∑ j : J,
    CategoryTheory.CategoryStruct.comp
      (CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.π f j))
      (CategoryTheory.Limits.biproduct.ι (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) j)
-- CategoryTheory.leftDistributor_inv
theorem leftDistributor_inv {J : Type} [Fintype J] (X : C) (f : J → C) :
    (leftDistributor X f).inv = ∑ j : J, biproduct.π _ j ≫ (X ◁ biproduct.ι f 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] (X : C) (f : J → C)
Goal: (CategoryTheory.leftDistributor X f).inv =
  ∑ j : J,
    CategoryTheory.CategoryStruct.comp
      (CategoryTheory.Limits.biproduct.π (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) j)
      (CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.ι f j))
-- CategoryTheory.leftDistributor_hom_comp_biproduct_π
@[reassoc (attr := simp)]
theorem leftDistributor_hom_comp_biproduct_π {J : Type} [Fintype J] (X : C) (f : J → C) (j : J) :
    (leftDistributor X f).hom ≫ 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] (X : C) (f : J → C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.leftDistributor X f).hom
    (CategoryTheory.Limits.biproduct.π (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) j) =
  CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.π f j)
-- CategoryTheory.biproduct_ι_comp_leftDistributor_hom
@[reassoc (attr := simp)]
theorem biproduct_ι_comp_leftDistributor_hom {J : Type} [Fintype J] (X : C) (f : J → C) (j : J) :
    (X ◁ biproduct.ι _ j) ≫ (leftDistributor X f).hom = biproduct.ι (fun j => X ⊗ f j) 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] (X : C) (f : J → C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp
    (CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.ι f j))
    (CategoryTheory.leftDistributor X f).hom =
  CategoryTheory.Limits.biproduct.ι (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) j
-- CategoryTheory.leftDistributor_inv_comp_biproduct_π
@[reassoc (attr := simp)]
theorem leftDistributor_inv_comp_biproduct_π {J : Type} [Fintype J] (X : C) (f : J → C) (j : J) :
    (leftDistributor X f).inv ≫ (X ◁ biproduct.π _ j) = 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] (X : C) (f : J → C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.leftDistributor X f).inv
    (CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.π f j)) =
  CategoryTheory.Limits.biproduct.π (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) j
-- CategoryTheory.biproduct_ι_comp_leftDistributor_inv
@[reassoc (attr := simp)]
theorem biproduct_ι_comp_leftDistributor_inv {J : Type} [Fintype J] (X : C) (f : J → C) (j : J) :
    biproduct.ι _ j ≫ (leftDistributor X f).inv = 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] (X : C) (f : J → C) (j : J)
Goal: CategoryTheory.CategoryStruct.comp
    (CategoryTheory.Limits.biproduct.ι (fun j => CategoryTheory.MonoidalCategory.tensorObj X (f j)) j)
    (CategoryTheory.leftDistributor X f).inv =
  CategoryTheory.MonoidalCategory.whiskerLeft X (CategoryTheory.Limits.biproduct.ι f j)
-- CategoryTheory.leftDistributor_assoc
theorem leftDistributor_assoc {J : Type} [Fintype J] (X Y : C) (f : J → C) :
    (asIso (𝟙 X) ⊗ leftDistributor Y f) ≪≫ leftDistributor X _ =
      (α_ X Y (⨁ f)).symm ≪≫ leftDistributor (X ⊗ Y) f ≪≫ biproduct.mapIso fun j => α_ X Y _ 
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)
Goal: ((CategoryTheory.asIso (CategoryTheory.CategoryStruct.id X) ⊗ CategoryTheory.leftDistributor Y f) ≪≫
    CategoryTheory.leftDistributor X fun j => CategoryTheory.MonoidalCategory.tensorObj Y (f j)) =
  (CategoryTheory.MonoidalCategory.associator X Y (⨁ f)).symm ≪≫
    CategoryTheory.leftDistributor (CategoryTheory.MonoidalCategory.tensorObj X Y) f ≪≫
      CategoryTheory.Limits.biproduct.mapIso fun j => CategoryTheory.MonoidalCategory.associator X Y (f j)
-- CategoryTheory.rightDistributor_hom
theorem rightDistributor_hom {J : Type} [Fintype J] (f : J → C) (X : C) :
    (rightDistributor f X).hom =
      ∑ j : J, (biproduct.π f j ▷ X) ≫ 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)
Goal: (CategoryTheory.rightDistributor f X).hom =
  ∑ j : J,
    CategoryTheory.CategoryStruct.comp
      (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.π f j) X)
      (CategoryTheory.Limits.biproduct.ι (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) j)
-- CategoryTheory.rightDistributor_inv
theorem rightDistributor_inv {J : Type} [Fintype J] (f : J → C) (X : C) :
    (rightDistributor f X).inv = ∑ j : J, biproduct.π _ j ≫ (biproduct.ι f 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)
Goal: (CategoryTheory.rightDistributor f X).inv =
  ∑ j : J,
    CategoryTheory.CategoryStruct.comp
      (CategoryTheory.Limits.biproduct.π (fun j => CategoryTheory.MonoidalCategory.tensorObj (f j) X) j)
      (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Limits.biproduct.ι f j) X)