ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.OplaxMonoidalFunctor.right_unitality
structure OplaxMonoidalFunctor extends C ⥤ D where
    η : obj (𝟙_ C) ⟶ 𝟙_ D
    δ : ∀ X Y : C, obj (X ⊗ Y) ⟶ obj X ⊗ obj Y
  δ_natural_left :
    ∀ {X Y : C} (f : X ⟶ Y) (X' : C),
      δ X X' ≫ map f ▷ obj X' = map (f ▷ X') ≫ δ Y X' := by
    aesop_cat
  δ_natural_right :
    ∀ {X Y : C} (X' : C) (f : X ⟶ Y) ,
      δ X' X ≫ obj X' ◁ map f = map (X' ◁ f) ≫ δ X' Y := by
    aesop_cat
    associativity :
    ∀ X Y Z : C,
      δ (X ⊗ Y) Z ≫ δ X Y ▷ obj Z ≫ (α_ (obj X) (obj Y) (obj Z)).hom =
        map (α_ X Y Z).hom ≫ δ X (Y ⊗ Z) ≫ obj X ◁ δ Y Z := by
    aesop_cat
  -- unitality
  left_unitality : ∀ X : C, (λ_ (obj X)).inv = map (λ_ X).inv ≫ δ (𝟙_ C) X ≫ η ▷ obj X := by
    aesop_cat
  right_unitality : ∀ X : C, (ρ_ (obj X)).inv = map (ρ_ X).inv ≫ δ X (𝟙_ C) ≫ obj X ◁ η := 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] (self : CategoryTheory.OplaxMonoidalFunctor C D) (X : C)
Goal: (CategoryTheory.MonoidalCategory.rightUnitor (self.obj X)).inv =
  self.map (CategoryTheory.MonoidalCategory.rightUnitor X).inv ≫
    self.δ X (𝟙_ C) ≫ CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X) self.η
-- CategoryTheory.OplaxMonoidalFunctor.δ_natural_right
structure OplaxMonoidalFunctor extends C ⥤ D where
    η : obj (𝟙_ C) ⟶ 𝟙_ D
    δ : ∀ X Y : C, obj (X ⊗ Y) ⟶ obj X ⊗ obj Y
  δ_natural_left :
    ∀ {X Y : C} (f : X ⟶ Y) (X' : C),
      δ X X' ≫ map f ▷ obj X' = map (f ▷ X') ≫ δ Y X' := by
    aesop_cat
  δ_natural_right :
    ∀ {X Y : C} (X' : C) (f : X ⟶ Y) ,
      δ X' X ≫ obj X' ◁ map f = map (X' ◁ f) ≫ δ X' Y := by
    aesop_cat
    associativity :
    ∀ X Y Z : C,
      δ (X ⊗ Y) Z ≫ δ X Y ▷ obj Z ≫ (α_ (obj X) (obj Y) (obj Z)).hom =
        map (α_ X Y Z).hom ≫ δ X (Y ⊗ Z) ≫ obj X ◁ δ Y Z := by
    aesop_cat
  -- unitality
  left_unitality : ∀ X : C, (λ_ (obj X)).inv = map (λ_ X).inv ≫ δ (𝟙_ C) X ≫ η ▷ obj X := by
    aesop_cat
  right_unitality : ∀ X : C, (ρ_ (obj X)).inv = map (ρ_ X).inv ≫ δ X (𝟙_ C) ≫ obj X ◁ η := 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] (self : CategoryTheory.OplaxMonoidalFunctor C D) {X Y : C} (X' : C) (f : X ⟶ Y)
Goal: self.δ X' X ≫ CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X') (self.map f) =
  self.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f) ≫ self.δ X' Y
-- CategoryTheory.OplaxMonoidalFunctor.δ_natural_left
structure OplaxMonoidalFunctor extends C ⥤ D where
    η : obj (𝟙_ C) ⟶ 𝟙_ D
    δ : ∀ X Y : C, obj (X ⊗ Y) ⟶ obj X ⊗ obj Y
  δ_natural_left :
    ∀ {X Y : C} (f : X ⟶ Y) (X' : C),
      δ X X' ≫ map f ▷ obj X' = map (f ▷ X') ≫ δ Y X' := by
    aesop_cat
  δ_natural_right :
    ∀ {X Y : C} (X' : C) (f : X ⟶ Y) ,
      δ X' X ≫ obj X' ◁ map f = map (X' ◁ f) ≫ δ X' Y := by
    aesop_cat
    associativity :
    ∀ X Y Z : C,
      δ (X ⊗ Y) Z ≫ δ X Y ▷ obj Z ≫ (α_ (obj X) (obj Y) (obj Z)).hom =
        map (α_ X Y Z).hom ≫ δ X (Y ⊗ Z) ≫ obj X ◁ δ Y Z := by
    aesop_cat
  -- unitality
  left_unitality : ∀ X : C, (λ_ (obj X)).inv = map (λ_ X).inv ≫ δ (𝟙_ C) X ≫ η ▷ obj X := by
    aesop_cat
  right_unitality : ∀ X : C, (ρ_ (obj X)).inv = map (ρ_ X).inv ≫ δ X (𝟙_ C) ≫ obj X ◁ η := 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] (self : CategoryTheory.OplaxMonoidalFunctor C D) {X Y : C} (f : X ⟶ Y) (X' : C)
Goal: self.δ X X' ≫ CategoryTheory.MonoidalCategory.whiskerRight (self.map f) (self.obj X') =
  self.map (CategoryTheory.MonoidalCategory.whiskerRight f X') ≫ self.δ Y X'
-- CategoryTheory.OplaxMonoidalFunctor.δ_natural
@[reassoc (attr := simp)]
theorem OplaxMonoidalFunctor.δ_natural (F : OplaxMonoidalFunctor C D) {X Y X' Y' : C}
    (f : X ⟶ Y) (g : X' ⟶ Y') :
      F.δ X X' ≫ (F.map f ⊗ F.map g) = F.map (f ⊗ g) ≫ F.δ Y Y' 
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.OplaxMonoidalFunctor C D) {X Y X' Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y')
Goal: F.δ X X' ≫ CategoryTheory.MonoidalCategory.tensorHom (F.map f) (F.map g) =
  F.map (CategoryTheory.MonoidalCategory.tensorHom f g) ≫ F.δ Y Y'
-- CategoryTheory.OplaxMonoidalFunctor.left_unitality_hom
@[reassoc (attr := simp)]
theorem OplaxMonoidalFunctor.left_unitality_hom (F : OplaxMonoidalFunctor C D) (X : C) :
    F.δ (𝟙_ C) X ≫ F.η ▷ F.obj X ≫ (λ_ (F.obj X)).hom = F.map (λ_ 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 : CategoryTheory.OplaxMonoidalFunctor C D) (X : C)
Goal: F.δ (𝟙_ C) X ≫
    CategoryTheory.MonoidalCategory.whiskerRight F.η (F.obj X) ≫
      (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).hom =
  F.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom
-- CategoryTheory.OplaxMonoidalFunctor.right_unitality_hom
@[reassoc (attr := simp)]
theorem OplaxMonoidalFunctor.right_unitality_hom (F : OplaxMonoidalFunctor C D) (X : C) :
    F.δ X (𝟙_ C) ≫ F.obj X ◁ F.η ≫ (ρ_ (F.obj X)).hom = F.map (ρ_ 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 : CategoryTheory.OplaxMonoidalFunctor C D) (X : C)
Goal: F.δ X (𝟙_ C) ≫
    CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) F.η ≫
      (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).hom =
  F.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom
-- CategoryTheory.OplaxMonoidalFunctor.associativity_inv
@[reassoc (attr := simp)]
theorem OplaxMonoidalFunctor.associativity_inv (F : OplaxMonoidalFunctor C D) (X Y Z : C) :
    F.δ X (Y ⊗ Z) ≫ F.obj X ◁ F.δ Y Z ≫ (α_ (F.obj X) (F.obj Y) (F.obj Z)).inv =
      F.map (α_ X Y Z).inv ≫ F.δ (X ⊗ Y) Z ≫ F.δ X Y ▷ F.obj Z 
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.OplaxMonoidalFunctor C D) (X Y Z : C)
Goal: F.δ X (CategoryTheory.MonoidalCategory.tensorObj Y Z) ≫
    CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (F.δ Y Z) ≫
      (CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z)).inv =
  F.map (CategoryTheory.MonoidalCategory.associator X Y Z).inv ≫
    F.δ (CategoryTheory.MonoidalCategory.tensorObj X Y) Z ≫
      CategoryTheory.MonoidalCategory.whiskerRight (F.δ X Y) (F.obj Z)
-- CategoryTheory.MonoidalFunctor.ε_isIso
structure MonoidalFunctor extends LaxMonoidalFunctor.{v₁, v₂} C D where
  ε_isIso : IsIso ε := by infer_instance
  μ_isIso : ∀ X Y : C, IsIso (μ X Y) := by infer_instance
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (self : CategoryTheory.MonoidalFunctor C D)
Goal: CategoryTheory.IsIso self.ε
-- CategoryTheory.MonoidalFunctor.μ_isIso
structure MonoidalFunctor extends LaxMonoidalFunctor.{v₁, v₂} C D where
  ε_isIso : IsIso ε := by infer_instance
  μ_isIso : ∀ X Y : C, IsIso (μ X Y) := by infer_instance
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (self : CategoryTheory.MonoidalFunctor C D) (X Y : C)
Goal: CategoryTheory.IsIso (self.μ X Y)
-- CategoryTheory.MonoidalFunctor.toOplaxMonoidalFunctor_δ
@[simps]
noncomputable def MonoidalFunctor.toOplaxMonoidalFunctor (F : MonoidalFunctor C D) :
    OplaxMonoidalFunctor C 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) (X Y : C)
Goal: F.toOplaxMonoidalFunctor.δ X Y = CategoryTheory.inv (F.μ X Y)
-- CategoryTheory.MonoidalFunctor.toOplaxMonoidalFunctor_η
@[simps]
noncomputable def MonoidalFunctor.toOplaxMonoidalFunctor (F : MonoidalFunctor C D) :
    OplaxMonoidalFunctor C 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)
Goal: F.toOplaxMonoidalFunctor.η = CategoryTheory.inv F.ε
-- CategoryTheory.MonoidalFunctor.toOplaxMonoidalFunctor_toFunctor
@[simps]
noncomputable def MonoidalFunctor.toOplaxMonoidalFunctor (F : MonoidalFunctor C D) :
    OplaxMonoidalFunctor C 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)
Goal: F.toOplaxMonoidalFunctor.toFunctor = F.toFunctor
-- CategoryTheory.LaxMonoidalFunctor.id_μ
@[simps]
def id : LaxMonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y : C)
Goal: (CategoryTheory.LaxMonoidalFunctor.id C).μ X Y =
  𝟙 (CategoryTheory.MonoidalCategory.tensorObj ((𝟭 C).obj X) ((𝟭 C).obj Y))
-- CategoryTheory.LaxMonoidalFunctor.id_ε
@[simps]
def id : LaxMonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.LaxMonoidalFunctor.id C).ε = 𝟙 (𝟙_ C)
-- CategoryTheory.LaxMonoidalFunctor.id_toFunctor
@[simps]
def id : LaxMonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.LaxMonoidalFunctor.id C).toFunctor = 𝟭 C
-- CategoryTheory.OplaxMonoidalFunctor.id_η
@[simps]
def id : OplaxMonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.OplaxMonoidalFunctor.id C).η = 𝟙 ((𝟭 C).obj (𝟙_ C))
-- CategoryTheory.OplaxMonoidalFunctor.id_δ
@[simps]
def id : OplaxMonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y : C)
Goal: (CategoryTheory.OplaxMonoidalFunctor.id C).δ X Y = 𝟙 ((𝟭 C).obj (CategoryTheory.MonoidalCategory.tensorObj X Y))
-- CategoryTheory.OplaxMonoidalFunctor.id_toFunctor
@[simps]
def id : OplaxMonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.OplaxMonoidalFunctor.id C).toFunctor = 𝟭 C
-- CategoryTheory.MonoidalFunctor.map_tensor
@[reassoc]
theorem map_tensor {X Y X' Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y') :
    F.map (f ⊗ g) = inv (F.μ X X') ≫ (F.map f ⊗ F.map g) ≫ F.μ Y Y' 
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) {X Y X' Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y')
Goal: F.map (CategoryTheory.MonoidalCategory.tensorHom f g) =
  CategoryTheory.inv (F.μ X X') ≫ CategoryTheory.MonoidalCategory.tensorHom (F.map f) (F.map g) ≫ F.μ Y Y'
-- CategoryTheory.MonoidalFunctor.map_whiskerLeft
@[reassoc]
theorem map_whiskerLeft (X : C) {Y Z : C} (f : Y ⟶ Z) :
    F.map (X ◁ f) = inv (F.μ X Y) ≫ F.obj X ◁ F.map f ≫ F.μ X Z 
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) (X : C) {Y Z : C} (f : Y ⟶ Z)
Goal: F.map (CategoryTheory.MonoidalCategory.whiskerLeft X f) =
  CategoryTheory.inv (F.μ X Y) ≫ CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (F.map f) ≫ F.μ X Z
-- CategoryTheory.MonoidalFunctor.map_whiskerRight
@[reassoc]
theorem map_whiskerRight {X Y : C} (f : X ⟶ Y) (Z : C) :
    F.map (f ▷ Z) = inv (F.μ X Z) ≫ F.map f ▷ F.obj Z ≫ F.μ Y Z 
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) {X Y : C} (f : X ⟶ Y) (Z : C)
Goal: F.map (CategoryTheory.MonoidalCategory.whiskerRight f Z) =
  CategoryTheory.inv (F.μ X Z) ≫ CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj Z) ≫ F.μ Y Z
-- CategoryTheory.MonoidalFunctor.map_leftUnitor
@[reassoc]
theorem map_leftUnitor (X : C) :
    F.map (λ_ X).hom = inv (F.μ (𝟙_ C) X) ≫ inv F.ε ▷ F.obj X ≫ (λ_ (F.obj 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 : CategoryTheory.MonoidalFunctor C D) (X : C)
Goal: F.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom =
  CategoryTheory.inv (F.μ (𝟙_ C) X) ≫
    CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.inv F.ε) (F.obj X) ≫
      (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).hom
-- CategoryTheory.MonoidalFunctor.map_rightUnitor
@[reassoc]
theorem map_rightUnitor (X : C) :
    F.map (ρ_ X).hom = inv (F.μ X (𝟙_ C)) ≫ F.obj X ◁ inv F.ε ≫ (ρ_ (F.obj 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 : CategoryTheory.MonoidalFunctor C D) (X : C)
Goal: F.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom =
  CategoryTheory.inv (F.μ X (𝟙_ C)) ≫
    CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (CategoryTheory.inv F.ε) ≫
      (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).hom
-- CategoryTheory.MonoidalFunctor.μIso_hom
@[simp]
theorem μIso_hom (X Y : C) : (F.μIso X Y).hom = F.μ X Y 
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) (X Y : C)
Goal: (F.μIso X Y).hom = F.μ X Y
-- CategoryTheory.MonoidalFunctor.μ_inv_hom_id
@[reassoc (attr := simp)]
theorem μ_inv_hom_id (X Y : C) : (F.μIso X Y).inv ≫ F.μ X Y = 𝟙 _ 
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) (X Y : C)
Goal: (F.μIso X Y).inv ≫ F.μ X Y = 𝟙 (F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y))
-- CategoryTheory.MonoidalFunctor.μ_hom_inv_id
@[simp]
theorem μ_hom_inv_id (X Y : C) : F.μ X Y ≫ (F.μIso X Y).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 : CategoryTheory.MonoidalFunctor C D) (X Y : C)
Goal: F.μ X Y ≫ (F.μIso X Y).inv = 𝟙 (CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y))
-- CategoryTheory.MonoidalFunctor.εIso_hom
@[simp]
theorem εIso_hom : F.εIso.hom = 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.MonoidalFunctor C D)
Goal: F.εIso.hom = F.ε
-- CategoryTheory.MonoidalFunctor.ε_inv_hom_id
@[reassoc (attr := simp)]
theorem ε_inv_hom_id : F.εIso.inv ≫ 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.MonoidalFunctor C D)
Goal: F.εIso.inv ≫ F.ε = 𝟙 (F.obj (𝟙_ C))
-- CategoryTheory.MonoidalFunctor.ε_hom_inv_id
@[simp]
theorem ε_hom_inv_id : F.ε ≫ F.εIso.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 : CategoryTheory.MonoidalFunctor C D)
Goal: F.ε ≫ F.εIso.inv = 𝟙 (𝟙_ D)
-- CategoryTheory.MonoidalFunctor.commTensorLeft_inv_app
@[simps!]
noncomputable def commTensorLeft (X : C) :
    F.toFunctor ⋙ tensorLeft (F.toFunctor.obj X) ≅ tensorLeft X ⋙ F.toFunctor 
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) (X : C)
Goal: ∀ (X_1 : C), (F.commTensorLeft X).inv.app X_1 = (F.μIso X X_1).inv
-- CategoryTheory.MonoidalFunctor.commTensorLeft_hom_app
@[simps!]
noncomputable def commTensorLeft (X : C) :
    F.toFunctor ⋙ tensorLeft (F.toFunctor.obj X) ≅ tensorLeft X ⋙ F.toFunctor 
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) (X : C)
Goal: ∀ (X_1 : C), (F.commTensorLeft X).hom.app X_1 = F.μ X X_1
-- CategoryTheory.MonoidalFunctor.commTensorRight_inv_app
@[simps!]
noncomputable def commTensorRight (X : C) :
    F.toFunctor ⋙ tensorRight (F.toFunctor.obj X) ≅ tensorRight X ⋙ F.toFunctor 
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) (X : C)
Goal: ∀ (X_1 : C), (F.commTensorRight X).inv.app X_1 = (F.μIso X_1 X).inv
-- CategoryTheory.MonoidalFunctor.commTensorRight_hom_app
@[simps!]
noncomputable def commTensorRight (X : C) :
    F.toFunctor ⋙ tensorRight (F.toFunctor.obj X) ≅ tensorRight X ⋙ F.toFunctor 
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) (X : C)
Goal: ∀ (X_1 : C), (F.commTensorRight X).hom.app X_1 = F.μ X_1 X
-- CategoryTheory.MonoidalFunctor.id_toLaxMonoidalFunctor_μ
@[simps]
def id : MonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y : C)
Goal: (CategoryTheory.MonoidalFunctor.id C).μ X Y = 𝟙 (CategoryTheory.MonoidalCategory.tensorObj ((𝟭 C).obj X) ((𝟭 C).obj Y))
-- CategoryTheory.MonoidalFunctor.id_toLaxMonoidalFunctor_ε
@[simps]
def id : MonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.MonoidalFunctor.id C).ε = 𝟙 (𝟙_ C)
-- CategoryTheory.MonoidalFunctor.id_toLaxMonoidalFunctor_toFunctor
@[simps]
def id : MonoidalFunctor.{v₁, v₁} C C 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.MonoidalFunctor.id C).toFunctor = 𝟭 C
-- CategoryTheory.LaxMonoidalFunctor.comp_toFunctor
@[simps]
def comp : LaxMonoidalFunctor.{v₁, v₃} C E 
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 : CategoryTheory.LaxMonoidalFunctor C D) (G : CategoryTheory.LaxMonoidalFunctor D E)
Goal: (F ⊗⋙ G).toFunctor = F.toFunctor ⋙ G.toFunctor
-- CategoryTheory.LaxMonoidalFunctor.comp_μ
@[simps]
def comp : LaxMonoidalFunctor.{v₁, v₃} C E 
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 : CategoryTheory.LaxMonoidalFunctor C D) (G : CategoryTheory.LaxMonoidalFunctor D E) (X Y : C)
Goal: (F ⊗⋙ G).μ X Y = G.μ (F.obj X) (F.obj Y) ≫ G.map (F.μ X Y)
-- CategoryTheory.LaxMonoidalFunctor.comp_ε
@[simps]
def comp : LaxMonoidalFunctor.{v₁, v₃} C E 
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 : CategoryTheory.LaxMonoidalFunctor C D) (G : CategoryTheory.LaxMonoidalFunctor D E)
Goal: (F ⊗⋙ G).ε = G.ε ≫ G.map F.ε
-- CategoryTheory.OplaxMonoidalFunctor.comp_δ
@[simps]
def comp : OplaxMonoidalFunctor.{v₁, v₃} C E 
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 : CategoryTheory.OplaxMonoidalFunctor C D) (G : CategoryTheory.OplaxMonoidalFunctor D E) (X Y : C)
Goal: (F ⊗⋙ G).δ X Y = G.map (F.δ X Y) ≫ G.δ (F.obj X) (F.obj Y)
-- CategoryTheory.OplaxMonoidalFunctor.comp_η
@[simps]
def comp : OplaxMonoidalFunctor.{v₁, v₃} C E 
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 : CategoryTheory.OplaxMonoidalFunctor C D) (G : CategoryTheory.OplaxMonoidalFunctor D E)
Goal: (F ⊗⋙ G).η = G.map F.η ≫ G.η
-- CategoryTheory.OplaxMonoidalFunctor.comp_toFunctor
@[simps]
def comp : OplaxMonoidalFunctor.{v₁, v₃} C E 
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 : CategoryTheory.OplaxMonoidalFunctor C D) (G : CategoryTheory.OplaxMonoidalFunctor D E)
Goal: (F ⊗⋙ G).toFunctor = F.toFunctor ⋙ G.toFunctor
-- CategoryTheory.LaxMonoidalFunctor.prod_ε
@[simps]
def prod : LaxMonoidalFunctor (B × D) (C × E) 
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] {B : Type u₀} [CategoryTheory.Category.{v₀, u₀} B] [CategoryTheory.MonoidalCategory B] (F : CategoryTheory.LaxMonoidalFunctor B C) (G : CategoryTheory.LaxMonoidalFunctor D E)
Goal: (F.prod G).ε = (F.ε, G.ε)
-- CategoryTheory.LaxMonoidalFunctor.prod_toFunctor
@[simps]
def prod : LaxMonoidalFunctor (B × D) (C × E) 
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] {B : Type u₀} [CategoryTheory.Category.{v₀, u₀} B] [CategoryTheory.MonoidalCategory B] (F : CategoryTheory.LaxMonoidalFunctor B C) (G : CategoryTheory.LaxMonoidalFunctor D E)
Goal: (F.prod G).toFunctor = F.prod G.toFunctor
-- CategoryTheory.LaxMonoidalFunctor.prod_μ
@[simps]
def prod : LaxMonoidalFunctor (B × D) (C × E) 
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] {B : Type u₀} [CategoryTheory.Category.{v₀, u₀} B] [CategoryTheory.MonoidalCategory B] (F : CategoryTheory.LaxMonoidalFunctor B C) (G : CategoryTheory.LaxMonoidalFunctor D E) (X Y : B × D)
Goal: (F.prod G).μ X Y = (F.μ X.1 Y.1, G.μ X.2 Y.2)