ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.BinaryCofan.isPullback_initial_to_of_isVanKampen
theorem BinaryCofan.isPullback_initial_to_of_isVanKampen [HasInitial C] {c : BinaryCofan X Y}
    (h : IsVanKampenColimit c) : IsPullback (initial.to _) (initial.to _) c.inl c.inr 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasInitial C] {c : CategoryTheory.Limits.BinaryCofan X Y} (h : CategoryTheory.IsVanKampenColimit c)
Goal: CategoryTheory.IsPullback
  (CategoryTheory.Limits.initial.to
    ((CategoryTheory.Limits.pair X Y).obj { as := CategoryTheory.Limits.WalkingPair.left }))
  (CategoryTheory.Limits.initial.to
    ((CategoryTheory.Limits.pair X Y).obj { as := CategoryTheory.Limits.WalkingPair.right }))
  c.inl c.inr
-- CategoryTheory.isUniversalColimit_extendCofan
theorem isUniversalColimit_extendCofan {n : ℕ} (f : Fin (n + 1) → C)
    {c₁ : Cofan fun i : Fin n ↦ f i.succ} {c₂ : BinaryCofan (f 0) c₁.pt}
    (t₁ : IsUniversalColimit c₁) (t₂ : IsUniversalColimit c₂)
    [∀ {Z} (i : Z ⟶ c₂.pt), HasPullback c₂.inr i] :
    IsUniversalColimit (extendCofan c₁ c₂) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {n : ℕ} (f : Fin (n + 1) → C) {c₁ : CategoryTheory.Limits.Cofan fun i => f i.succ} {c₂ : CategoryTheory.Limits.BinaryCofan (f 0) c₁.pt} (t₁ : CategoryTheory.IsUniversalColimit c₁) (t₂ : CategoryTheory.IsUniversalColimit c₂) [∀ {Z : C} (i : Z ⟶ c₂.pt), CategoryTheory.Limits.HasPullback c₂.inr i]
Goal: CategoryTheory.IsUniversalColimit (CategoryTheory.extendCofan c₁ c₂)
-- CategoryTheory.isVanKampenColimit_extendCofan
theorem isVanKampenColimit_extendCofan {n : ℕ} (f : Fin (n + 1) → C)
    {c₁ : Cofan fun i : Fin n ↦ f i.succ} {c₂ : BinaryCofan (f 0) c₁.pt}
    (t₁ : IsVanKampenColimit c₁) (t₂ : IsVanKampenColimit c₂)
    [∀ {Z} (i : Z ⟶ c₂.pt), HasPullback c₂.inr i]
    [HasFiniteCoproducts C] :
    IsVanKampenColimit (extendCofan c₁ c₂) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {n : ℕ} (f : Fin (n + 1) → C) {c₁ : CategoryTheory.Limits.Cofan fun i => f i.succ} {c₂ : CategoryTheory.Limits.BinaryCofan (f 0) c₁.pt} (t₁ : CategoryTheory.IsVanKampenColimit c₁) (t₂ : CategoryTheory.IsVanKampenColimit c₂) [∀ {Z : C} (i : Z ⟶ c₂.pt), CategoryTheory.Limits.HasPullback c₂.inr i] [CategoryTheory.Limits.HasFiniteCoproducts C]
Goal: CategoryTheory.IsVanKampenColimit (CategoryTheory.extendCofan c₁ c₂)
-- CategoryTheory.isPullback_of_cofan_isVanKampen
theorem isPullback_of_cofan_isVanKampen [HasInitial C] {ι : Type*} {X : ι → C}
    {c : Cofan X} (hc : IsVanKampenColimit c) (i j : ι) [DecidableEq ι] :
    IsPullback (P := (if j = i then X i else ⊥_ C))
      (if h : j = i then eqToHom (if_pos h) else eqToHom (if_neg h) ≫ initial.to (X i))
      (if h : j = i then eqToHom ((if_pos h).trans (congr_arg X h.symm))
        else eqToHom (if_neg h) ≫ initial.to (X j))
      (Cofan.inj c i) (Cofan.inj c j) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] {ι : Type u_3} {X : ι → C} {c : CategoryTheory.Limits.Cofan X} (hc : CategoryTheory.IsVanKampenColimit c) (i j : ι) [DecidableEq ι]
Goal: CategoryTheory.IsPullback
  (if h : j = i then CategoryTheory.eqToHom ⋯
  else CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) (CategoryTheory.Limits.initial.to (X i)))
  (if h : j = i then CategoryTheory.eqToHom ⋯
  else CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) (CategoryTheory.Limits.initial.to (X j)))
  (c.inj i) (c.inj j)
-- CategoryTheory.isPullback_initial_to_of_cofan_isVanKampen
theorem isPullback_initial_to_of_cofan_isVanKampen [HasInitial C] {ι : Type*} {F : Discrete ι ⥤ C}
    {c : Cocone F} (hc : IsVanKampenColimit c) (i j : Discrete ι) (hi : i ≠ j) :
    IsPullback (initial.to _) (initial.to _) (c.ι.app i) (c.ι.app j) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] {ι : Type u_3} {F : CategoryTheory.Functor (CategoryTheory.Discrete ι) C} {c : CategoryTheory.Limits.Cocone F} (hc : CategoryTheory.IsVanKampenColimit c) (i j : CategoryTheory.Discrete ι) (hi : i ≠ j)
Goal: CategoryTheory.IsPullback (CategoryTheory.Limits.initial.to (F.obj i)) (CategoryTheory.Limits.initial.to (F.obj j))
  (c.ι.app i) (c.ι.app j)
-- CategoryTheory.mono_of_cofan_isVanKampen
theorem mono_of_cofan_isVanKampen [HasInitial C] {ι : Type*} {F : Discrete ι ⥤ C}
    {c : Cocone F} (hc : IsVanKampenColimit c) (i : Discrete ι) : Mono (c.ι.app i) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] {ι : Type u_3} {F : CategoryTheory.Functor (CategoryTheory.Discrete ι) C} {c : CategoryTheory.Limits.Cocone F} (hc : CategoryTheory.IsVanKampenColimit c) (i : CategoryTheory.Discrete ι)
Goal: CategoryTheory.Mono (c.ι.app i)
-- CategoryTheory.monoidalOfHasFiniteProducts.unit_ext
@[ext] theorem unit_ext {X : C} (f g : X ⟶ 𝟙_ C) : f = g 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] {X : C} (f g : X ⟶ 𝟙_ C)
Goal: f = g
-- CategoryTheory.monoidalOfHasFiniteProducts.tensor_ext
@[ext] theorem tensor_ext {X Y Z : C} (f g : X ⟶ Y ⊗ Z)
    (w₁ : f ≫ prod.fst = g ≫ prod.fst) (w₂ : f ≫ prod.snd = g ≫ prod.snd) : f = g 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] {X Y Z : C} (f g : X ⟶ CategoryTheory.MonoidalCategory.tensorObj Y Z) (w₁ :
  CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.prod.fst =
    CategoryTheory.CategoryStruct.comp g CategoryTheory.Limits.prod.fst) (w₂ :
  CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.prod.snd =
    CategoryTheory.CategoryStruct.comp g CategoryTheory.Limits.prod.snd)
Goal: f = g
-- CategoryTheory.monoidalOfHasFiniteProducts.tensorUnit
@[simp] theorem tensorUnit : 𝟙_ C = ⊤_ C 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C]
Goal: 𝟙_ C = ⊤_ C
-- CategoryTheory.monoidalOfHasFiniteProducts.tensorObj
@[simp]
theorem tensorObj (X Y : C) : X ⊗ Y = (X ⨯ Y) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y : C)
Goal: CategoryTheory.MonoidalCategory.tensorObj X Y = (X ⨯ Y)
-- CategoryTheory.monoidalOfHasFiniteProducts.tensorHom
@[simp]
theorem tensorHom {W X Y Z : C} (f : W ⟶ X) (g : Y ⟶ Z) : f ⊗ g = Limits.prod.map f g 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] {W X Y Z : C} (f : W ⟶ X) (g : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.tensorHom f g = CategoryTheory.Limits.prod.map f g
-- CategoryTheory.monoidalOfHasFiniteProducts.whiskerLeft
@[simp]
theorem whiskerLeft (X : C) {Y Z : C} (f : Y ⟶ Z) : X ◁ f = Limits.prod.map (𝟙 X) f 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X : C) {Y Z : C} (f : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.whiskerLeft X f = CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) f
-- CategoryTheory.monoidalOfHasFiniteProducts.whiskerRight
@[simp]
theorem whiskerRight {X Y : C} (f : X ⟶ Y) (Z : C) : f ▷ Z = Limits.prod.map f (𝟙 Z) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] {X Y : C} (f : X ⟶ Y) (Z : C)
Goal: CategoryTheory.MonoidalCategory.whiskerRight f Z = CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id Z)
-- CategoryTheory.monoidalOfHasFiniteProducts.leftUnitor_hom
@[simp]
theorem leftUnitor_hom (X : C) : (λ_ X).hom = Limits.prod.snd 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.leftUnitor X).hom = CategoryTheory.Limits.prod.snd
-- CategoryTheory.monoidalOfHasFiniteProducts.leftUnitor_inv
@[simp]
theorem leftUnitor_inv (X : C) : (λ_ X).inv = prod.lift (terminal.from X) (𝟙 _) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.leftUnitor X).inv =
  CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.terminal.from X) (CategoryTheory.CategoryStruct.id X)
-- CategoryTheory.monoidalOfHasFiniteProducts.rightUnitor_hom
@[simp]
theorem rightUnitor_hom (X : C) : (ρ_ X).hom = Limits.prod.fst 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.rightUnitor X).hom = CategoryTheory.Limits.prod.fst
-- CategoryTheory.monoidalOfHasFiniteProducts.rightUnitor_inv
@[simp]
theorem rightUnitor_inv (X : C) : (ρ_ X).inv = prod.lift (𝟙 _) (terminal.from X) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.rightUnitor X).inv =
  CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.id X) (CategoryTheory.Limits.terminal.from X)
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_hom
theorem associator_hom (X Y Z : C) :
    (α_ X Y Z).hom =
      prod.lift (Limits.prod.fst ≫ Limits.prod.fst)
        (prod.lift (Limits.prod.fst ≫ Limits.prod.snd) Limits.prod.snd) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).hom =
  CategoryTheory.Limits.prod.lift
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst)
    (CategoryTheory.Limits.prod.lift
      (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd)
      CategoryTheory.Limits.prod.snd)
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_inv
theorem associator_inv (X Y Z : C) :
    (α_ X Y Z).inv =
      prod.lift (prod.lift prod.fst (prod.snd ≫ prod.fst)) (prod.snd ≫ prod.snd) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).inv =
  CategoryTheory.Limits.prod.lift
    (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst
      (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst))
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd)
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_hom_fst
@[reassoc] theorem associator_hom_fst (X Y Z : C) :
    (α_ X Y Z).hom ≫ prod.fst = prod.fst ≫ prod.fst 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y Z).hom
    CategoryTheory.Limits.prod.fst =
  CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_hom_snd_fst
@[reassoc] theorem associator_hom_snd_fst (X Y Z : C) :
    (α_ X Y Z).hom ≫ prod.snd ≫ prod.fst = prod.fst ≫ prod.snd 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y Z).hom
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) =
  CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_hom_snd_snd
@[reassoc] theorem associator_hom_snd_snd (X Y Z : C) :
    (α_ X Y Z).hom ≫ prod.snd ≫ prod.snd = prod.snd 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y Z).hom
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd) =
  CategoryTheory.Limits.prod.snd
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_inv_fst_fst
@[reassoc] theorem associator_inv_fst_fst (X Y Z : C) :
    (α_ X Y Z).inv ≫ prod.fst ≫ prod.fst = prod.fst 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y Z).inv
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst) =
  CategoryTheory.Limits.prod.fst
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_inv_fst_snd
@[reassoc] theorem associator_inv_fst_snd (X Y Z : C) :
    (α_ X Y Z).inv ≫ prod.fst ≫ prod.snd = prod.snd ≫ prod.fst 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y Z).inv
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd) =
  CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst
-- CategoryTheory.monoidalOfHasFiniteProducts.associator_inv_snd
@[reassoc] theorem associator_inv_snd (X Y Z : C) :
    (α_ X Y Z).inv ≫ prod.snd = prod.snd ≫ prod.snd 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y Z : C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator X Y Z).inv
    CategoryTheory.Limits.prod.snd =
  CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd
-- CategoryTheory.symmetricOfHasFiniteProducts_braiding
@[simps]
def symmetricOfHasFiniteProducts [HasTerminal C] [HasBinaryProducts C] : SymmetricCategory C 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y : C)
Goal: β_ X Y = CategoryTheory.Limits.prod.braiding X Y
-- CategoryTheory.monoidalOfHasFiniteCoproducts.tensorObj
@[simp]
theorem tensorObj (X Y : C) : X ⊗ Y = (X ⨿ Y) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X Y : C)
Goal: CategoryTheory.MonoidalCategory.tensorObj X Y = (X ⨿ Y)
-- CategoryTheory.monoidalOfHasFiniteCoproducts.tensorHom
@[simp]
theorem tensorHom {W X Y Z : C} (f : W ⟶ X) (g : Y ⟶ Z) : f ⊗ g = Limits.coprod.map f g 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] {W X Y Z : C} (f : W ⟶ X) (g : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.tensorHom f g = CategoryTheory.Limits.coprod.map f g
-- CategoryTheory.monoidalOfHasFiniteCoproducts.whiskerLeft
@[simp]
theorem whiskerLeft (X : C) {Y Z : C} (f : Y ⟶ Z) : X ◁ f = Limits.coprod.map (𝟙 X) f 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X : C) {Y Z : C} (f : Y ⟶ Z)
Goal: CategoryTheory.MonoidalCategory.whiskerLeft X f =
  CategoryTheory.Limits.coprod.map (CategoryTheory.CategoryStruct.id X) f
-- CategoryTheory.monoidalOfHasFiniteCoproducts.whiskerRight
@[simp]
theorem whiskerRight {X Y : C} (f : X ⟶ Y) (Z : C) : f ▷ Z = Limits.coprod.map f (𝟙 Z) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] {X Y : C} (f : X ⟶ Y) (Z : C)
Goal: CategoryTheory.MonoidalCategory.whiskerRight f Z =
  CategoryTheory.Limits.coprod.map f (CategoryTheory.CategoryStruct.id Z)
-- CategoryTheory.monoidalOfHasFiniteCoproducts.leftUnitor_hom
@[simp]
theorem leftUnitor_hom (X : C) : (λ_ X).hom = coprod.desc (initial.to X) (𝟙 _) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.leftUnitor X).hom =
  CategoryTheory.Limits.coprod.desc (CategoryTheory.Limits.initial.to X) (CategoryTheory.CategoryStruct.id X)
-- CategoryTheory.monoidalOfHasFiniteCoproducts.rightUnitor_hom
@[simp]
theorem rightUnitor_hom (X : C) : (ρ_ X).hom = coprod.desc (𝟙 _) (initial.to X) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.rightUnitor X).hom =
  CategoryTheory.Limits.coprod.desc (CategoryTheory.CategoryStruct.id X) (CategoryTheory.Limits.initial.to X)
-- CategoryTheory.monoidalOfHasFiniteCoproducts.leftUnitor_inv
@[simp]
theorem leftUnitor_inv (X : C) : (λ_ X).inv = Limits.coprod.inr 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.leftUnitor X).inv = CategoryTheory.Limits.coprod.inr
-- CategoryTheory.monoidalOfHasFiniteCoproducts.rightUnitor_inv
@[simp]
theorem rightUnitor_inv (X : C) : (ρ_ X).inv = Limits.coprod.inl 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X : C)
Goal: (CategoryTheory.MonoidalCategory.rightUnitor X).inv = CategoryTheory.Limits.coprod.inl
-- CategoryTheory.monoidalOfHasFiniteCoproducts.associator_hom
theorem associator_hom (X Y Z : C) :
    (α_ X Y Z).hom =
      coprod.desc (coprod.desc coprod.inl (coprod.inl ≫ coprod.inr)) (coprod.inr ≫ coprod.inr) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).hom =
  CategoryTheory.Limits.coprod.desc
    (CategoryTheory.Limits.coprod.desc CategoryTheory.Limits.coprod.inl
      (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.coprod.inl CategoryTheory.Limits.coprod.inr))
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.coprod.inr CategoryTheory.Limits.coprod.inr)
-- CategoryTheory.monoidalOfHasFiniteCoproducts.associator_inv
theorem associator_inv (X Y Z : C) :
    (α_ X Y Z).inv =
      coprod.desc (coprod.inl ≫ coprod.inl) (coprod.desc (coprod.inr ≫ coprod.inl) coprod.inr) 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (X Y Z : C)
Goal: (CategoryTheory.MonoidalCategory.associator X Y Z).inv =
  CategoryTheory.Limits.coprod.desc
    (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.coprod.inl CategoryTheory.Limits.coprod.inl)
    (CategoryTheory.Limits.coprod.desc
      (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.coprod.inr CategoryTheory.Limits.coprod.inl)
      CategoryTheory.Limits.coprod.inr)
-- CategoryTheory.symmetricOfHasFiniteCoproducts_braiding
@[simps]
def symmetricOfHasFiniteCoproducts [HasInitial C] [HasBinaryCoproducts C] :
    SymmetricCategory C 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasInitial C] [CategoryTheory.Limits.HasBinaryCoproducts C] (P Q : C)
Goal: β_ P Q = CategoryTheory.Limits.coprod.braiding P Q
-- CategoryTheory.Functor.toMonoidalFunctorOfHasFiniteProducts_toLaxMonoidalFunctor_μ
@[simps]
def Functor.toMonoidalFunctorOfHasFiniteProducts : MonoidalFunctor C D 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{u_2, u_1} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasTerminal D] [CategoryTheory.Limits.HasBinaryProducts D] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty C) F] [CategoryTheory.Limits.PreservesLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) F] (X Y : C)
Goal: F.toMonoidalFunctorOfHasFiniteProducts.μ X Y = (CategoryTheory.asIso (CategoryTheory.Limits.prodComparison F X Y)).inv
-- CategoryTheory.Functor.toMonoidalFunctorOfHasFiniteProducts_toLaxMonoidalFunctor_toFunctor
@[simps]
def Functor.toMonoidalFunctorOfHasFiniteProducts : MonoidalFunctor C D 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{u_2, u_1} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasTerminal D] [CategoryTheory.Limits.HasBinaryProducts D] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty C) F] [CategoryTheory.Limits.PreservesLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) F]
Goal: F.toMonoidalFunctorOfHasFiniteProducts.toFunctor = F
-- CategoryTheory.Functor.toMonoidalFunctorOfHasFiniteProducts_toLaxMonoidalFunctor_ε
@[simps]
def Functor.toMonoidalFunctorOfHasFiniteProducts : MonoidalFunctor C D 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{u_2, u_1} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasTerminal D] [CategoryTheory.Limits.HasBinaryProducts D] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty C) F] [CategoryTheory.Limits.PreservesLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) F]
Goal: F.toMonoidalFunctorOfHasFiniteProducts.ε = (CategoryTheory.asIso (CategoryTheory.Limits.terminalComparison F)).inv
-- CategoryTheory.MonoidalOfChosenFiniteProducts.braiding_naturality
theorem braiding_naturality {X X' Y Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y') :
    tensorHom ℬ f g ≫ (Limits.BinaryFan.braiding (ℬ Y Y').isLimit (ℬ Y' Y).isLimit).hom =
      (Limits.BinaryFan.braiding (ℬ X X').isLimit (ℬ X' X).isLimit).hom ≫ tensorHom ℬ g f 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] (ℬ : (X Y : C) → CategoryTheory.Limits.LimitCone (CategoryTheory.Limits.pair X Y)) {X X' Y Y' : C} (f : X ⟶ Y) (g : X' ⟶ Y')
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ f g)
    (CategoryTheory.Limits.BinaryFan.braiding (ℬ Y Y').isLimit (ℬ Y' Y).isLimit).hom =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.BinaryFan.braiding (ℬ X X').isLimit (ℬ X' X).isLimit).hom
    (CategoryTheory.MonoidalOfChosenFiniteProducts.tensorHom ℬ g f)