ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.Limits.Bicone.category_id_hom
@[simps]
instance Bicone.category : Category (Bicone F) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F)
Goal: (𝟙 B).hom = 𝟙 B.pt
-- CategoryTheory.Limits.Bicone.category_comp_hom
@[simps]
instance Bicone.category : Category (Bicone F) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C}
Goal: ∀ {X Y Z : CategoryTheory.Limits.Bicone F} (f : X ⟶ Y) (g : Y ⟶ Z), (f ≫ g).hom = f.hom ≫ g.hom
-- CategoryTheory.Limits.BiconeMorphism.ext
@[ext]
theorem BiconeMorphism.ext {c c' : Bicone F} (f g : c ⟶ c') (w : f.hom = g.hom) : f = g 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} {c c' : CategoryTheory.Limits.Bicone F} (f g : c ⟶ c') (w : f.hom = g.hom)
Goal: f = g
-- CategoryTheory.Limits.Bicones.ext_inv_hom
-- Porting note: `@[ext]` used to accept lemmas like this. Now we add an aesop rule
@[aesop apply safe (rule_sets := [CategoryTheory]), simps]
def ext {c c' : Bicone F} (φ : c.pt ≅ c'.pt)
    (wι : ∀ j, c.ι j ≫ φ.hom = c'.ι j := by aesop_cat)
    (wπ : ∀ j, φ.hom ≫ c'.π j = c.π j := by aesop_cat) : c ≅ c' 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} {c c' : CategoryTheory.Limits.Bicone F} (φ : c.pt ≅ c'.pt) (wι : ∀ (j : J), c.ι j ≫ φ.hom = c'.ι j := by aesop_cat) (wπ : ∀ (j : J), φ.hom ≫ c'.π j = c.π j := by aesop_cat)
Goal: (CategoryTheory.Limits.Bicones.ext φ wι wπ).inv.hom = φ.inv
-- CategoryTheory.Limits.Bicones.ext_hom_hom
-- Porting note: `@[ext]` used to accept lemmas like this. Now we add an aesop rule
@[aesop apply safe (rule_sets := [CategoryTheory]), simps]
def ext {c c' : Bicone F} (φ : c.pt ≅ c'.pt)
    (wι : ∀ j, c.ι j ≫ φ.hom = c'.ι j := by aesop_cat)
    (wπ : ∀ j, φ.hom ≫ c'.π j = c.π j := by aesop_cat) : c ≅ c' 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} {c c' : CategoryTheory.Limits.Bicone F} (φ : c.pt ≅ c'.pt) (wι : ∀ (j : J), c.ι j ≫ φ.hom = c'.ι j := by aesop_cat) (wπ : ∀ (j : J), φ.hom ≫ c'.π j = c.π j := by aesop_cat)
Goal: (CategoryTheory.Limits.Bicones.ext φ wι wπ).hom.hom = φ.hom
-- CategoryTheory.Limits.Bicones.functoriality_obj_π
@[simps]
def functoriality (G : C ⥤ D) [Functor.PreservesZeroMorphisms G] :
    Bicone F ⥤ Bicone (G.obj ∘ F) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type uD} [CategoryTheory.Category.{uD', uD} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : J → C) (G : C ⥤ D) [G.PreservesZeroMorphisms] (A : CategoryTheory.Limits.Bicone F) (j : J)
Goal: ((CategoryTheory.Limits.Bicones.functoriality F G).obj A).π j = G.map (A.π j)
-- CategoryTheory.Limits.Bicones.functoriality_obj_ι
@[simps]
def functoriality (G : C ⥤ D) [Functor.PreservesZeroMorphisms G] :
    Bicone F ⥤ Bicone (G.obj ∘ F) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type uD} [CategoryTheory.Category.{uD', uD} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : J → C) (G : C ⥤ D) [G.PreservesZeroMorphisms] (A : CategoryTheory.Limits.Bicone F) (j : J)
Goal: ((CategoryTheory.Limits.Bicones.functoriality F G).obj A).ι j = G.map (A.ι j)
-- CategoryTheory.Limits.Bicones.functoriality_map_hom
@[simps]
def functoriality (G : C ⥤ D) [Functor.PreservesZeroMorphisms G] :
    Bicone F ⥤ Bicone (G.obj ∘ F) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type uD} [CategoryTheory.Category.{uD', uD} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : J → C) (G : C ⥤ D) [G.PreservesZeroMorphisms]
Goal: ∀ {X Y : CategoryTheory.Limits.Bicone F} (f : X ⟶ Y),
  ((CategoryTheory.Limits.Bicones.functoriality F G).map f).hom = G.map f.hom
-- CategoryTheory.Limits.Bicones.functoriality_obj_pt
@[simps]
def functoriality (G : C ⥤ D) [Functor.PreservesZeroMorphisms G] :
    Bicone F ⥤ Bicone (G.obj ∘ F) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type uD} [CategoryTheory.Category.{uD', uD} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : J → C) (G : C ⥤ D) [G.PreservesZeroMorphisms] (A : CategoryTheory.Limits.Bicone F)
Goal: ((CategoryTheory.Limits.Bicones.functoriality F G).obj A).pt = G.obj A.pt
-- CategoryTheory.Limits.Bicone.toCone_pt
@[simp]
theorem toCone_pt (B : Bicone F) : B.toCone.pt = B.pt 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F)
Goal: B.toCone.pt = B.pt
-- CategoryTheory.Limits.Bicone.toCone_π_app
@[simp]
theorem toCone_π_app (B : Bicone F) (j : Discrete J) : B.toCone.π.app j = B.π j.as 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F) (j : CategoryTheory.Discrete J)
Goal: B.toCone.π.app j = B.π j.as
-- CategoryTheory.Limits.Bicone.toCone_π_app_mk
theorem toCone_π_app_mk (B : Bicone F) (j : J) : B.toCone.π.app ⟨j⟩ = B.π j 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F) (j : J)
Goal: B.toCone.π.app { as := j } = B.π j
-- CategoryTheory.Limits.Bicone.toCone_proj
@[simp]
theorem toCone_proj (B : Bicone F) (j : J) : Fan.proj B.toCone j = B.π j 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F) (j : J)
Goal: CategoryTheory.Limits.Fan.proj B.toCone j = B.π j
-- CategoryTheory.Limits.Bicone.toCocone_pt
@[simp]
theorem toCocone_pt (B : Bicone F) : B.toCocone.pt = B.pt 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F)
Goal: B.toCocone.pt = B.pt
-- CategoryTheory.Limits.Bicone.toCocone_ι_app
@[simp]
theorem toCocone_ι_app (B : Bicone F) (j : Discrete J) : B.toCocone.ι.app j = B.ι j.as 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F) (j : CategoryTheory.Discrete J)
Goal: B.toCocone.ι.app j = B.ι j.as
-- CategoryTheory.Limits.Bicone.toCocone_inj
@[simp]
theorem toCocone_inj (B : Bicone F) (j : J) : Cofan.inj B.toCocone j = B.ι j 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F) (j : J)
Goal: CategoryTheory.Limits.Cofan.inj B.toCocone j = B.ι j
-- CategoryTheory.Limits.Bicone.toCocone_ι_app_mk
theorem toCocone_ι_app_mk (B : Bicone F) (j : J) : B.toCocone.ι.app ⟨j⟩ = B.ι j 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (B : CategoryTheory.Limits.Bicone F) (j : J)
Goal: B.toCocone.ι.app { as := j } = B.ι j
-- CategoryTheory.Limits.Bicone.ofLimitCone_pt
@[simps]
def ofLimitCone {f : J → C} {t : Cone (Discrete.functor f)} (ht : IsLimit t) : Bicone f 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Cone (CategoryTheory.Discrete.functor f)} (ht : CategoryTheory.Limits.IsLimit t)
Goal: (CategoryTheory.Limits.Bicone.ofLimitCone ht).pt = t.pt
-- CategoryTheory.Limits.Bicone.ofLimitCone_ι
@[simps]
def ofLimitCone {f : J → C} {t : Cone (Discrete.functor f)} (ht : IsLimit t) : Bicone f 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Cone (CategoryTheory.Discrete.functor f)} (ht : CategoryTheory.Limits.IsLimit t) (j : J)
Goal: (CategoryTheory.Limits.Bicone.ofLimitCone ht).ι j =
  ht.lift (CategoryTheory.Limits.Fan.mk (f j) fun j' => if h : j = j' then CategoryTheory.eqToHom ⋯ else 0)
-- CategoryTheory.Limits.Bicone.ofLimitCone_π
@[simps]
def ofLimitCone {f : J → C} {t : Cone (Discrete.functor f)} (ht : IsLimit t) : Bicone f 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Cone (CategoryTheory.Discrete.functor f)} (ht : CategoryTheory.Limits.IsLimit t) (j : J)
Goal: (CategoryTheory.Limits.Bicone.ofLimitCone ht).π j = t.π.app { as := j }
-- CategoryTheory.Limits.Bicone.ι_of_isLimit
theorem ι_of_isLimit {f : J → C} {t : Bicone f} (ht : IsLimit t.toCone) (j : J) :
    t.ι j = ht.lift (Fan.mk _ fun j' => if h : j = j' then eqToHom (congr_arg f h) else 0) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Bicone f} (ht : CategoryTheory.Limits.IsLimit t.toCone) (j : J)
Goal: t.ι j = ht.lift (CategoryTheory.Limits.Fan.mk (f j) fun j' => if h : j = j' then CategoryTheory.eqToHom ⋯ else 0)
-- CategoryTheory.Limits.Bicone.ofColimitCocone_ι
@[simps]
def ofColimitCocone {f : J → C} {t : Cocone (Discrete.functor f)} (ht : IsColimit t) :
    Bicone f 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Cocone (CategoryTheory.Discrete.functor f)} (ht : CategoryTheory.Limits.IsColimit t) (j : J)
Goal: (CategoryTheory.Limits.Bicone.ofColimitCocone ht).ι j = t.ι.app { as := j }
-- CategoryTheory.Limits.Bicone.ofColimitCocone_π
@[simps]
def ofColimitCocone {f : J → C} {t : Cocone (Discrete.functor f)} (ht : IsColimit t) :
    Bicone f 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Cocone (CategoryTheory.Discrete.functor f)} (ht : CategoryTheory.Limits.IsColimit t) (j : J)
Goal: (CategoryTheory.Limits.Bicone.ofColimitCocone ht).π j =
  ht.desc (CategoryTheory.Limits.Cofan.mk (f j) fun j' => if h : j' = j then CategoryTheory.eqToHom ⋯ else 0)
-- CategoryTheory.Limits.Bicone.ofColimitCocone_pt
@[simps]
def ofColimitCocone {f : J → C} {t : Cocone (Discrete.functor f)} (ht : IsColimit t) :
    Bicone f 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Cocone (CategoryTheory.Discrete.functor f)} (ht : CategoryTheory.Limits.IsColimit t)
Goal: (CategoryTheory.Limits.Bicone.ofColimitCocone ht).pt = t.pt
-- CategoryTheory.Limits.Bicone.π_of_isColimit
theorem π_of_isColimit {f : J → C} {t : Bicone f} (ht : IsColimit t.toCocone) (j : J) :
    t.π j = ht.desc (Cofan.mk _ fun j' => if h : j' = j then eqToHom (congr_arg f h) else 0) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} {t : CategoryTheory.Limits.Bicone f} (ht : CategoryTheory.Limits.IsColimit t.toCocone) (j : J)
Goal: t.π j = ht.desc (CategoryTheory.Limits.Cofan.mk (f j) fun j' => if h : j' = j then CategoryTheory.eqToHom ⋯ else 0)
-- CategoryTheory.Limits.Bicone.whisker_π
@[simps]
def whisker {f : J → C} (c : Bicone f) (g : K ≃ J) : Bicone (f ∘ g) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : Type w'} {f : J → C} (c : CategoryTheory.Limits.Bicone f) (g : K ≃ J) (k : K)
Goal: (c.whisker g).π k = c.π (g k)
-- CategoryTheory.Limits.Bicone.whisker_pt
@[simps]
def whisker {f : J → C} (c : Bicone f) (g : K ≃ J) : Bicone (f ∘ g) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : Type w'} {f : J → C} (c : CategoryTheory.Limits.Bicone f) (g : K ≃ J)
Goal: (c.whisker g).pt = c.pt
-- CategoryTheory.Limits.Bicone.whisker_ι
@[simps]
def whisker {f : J → C} (c : Bicone f) (g : K ≃ J) : Bicone (f ∘ g) 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : Type w'} {f : J → C} (c : CategoryTheory.Limits.Bicone f) (g : K ≃ J) (k : K)
Goal: (c.whisker g).ι k = c.ι (g k)
-- CategoryTheory.Limits.HasBiproduct.exists_biproduct
class HasBiproduct (F : J → C) : Prop where mk' ::
  exists_biproduct : Nonempty (LimitBicone F)
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} [self : CategoryTheory.Limits.HasBiproduct F]
Goal: Nonempty (CategoryTheory.Limits.LimitBicone F)
-- CategoryTheory.Limits.HasBiproduct.mk
theorem HasBiproduct.mk {F : J → C} (d : LimitBicone F) : HasBiproduct F 
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {F : J → C} (d : CategoryTheory.Limits.LimitBicone F)
Goal: CategoryTheory.Limits.HasBiproduct F
-- CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct
class HasBiproductsOfShape : Prop where
  has_biproduct : ∀ F : J → C, HasBiproduct F
Arguments: {J : Type w} {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] [self : CategoryTheory.Limits.HasBiproductsOfShape J C] (F : J → C)
Goal: CategoryTheory.Limits.HasBiproduct F
-- CategoryTheory.Limits.HasFiniteBiproducts.out
class HasFiniteBiproducts : Prop where
  out : ∀ n, HasBiproductsOfShape (Fin n) C
Arguments: {C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] [self : CategoryTheory.Limits.HasFiniteBiproducts C] (n : ℕ)
Goal: CategoryTheory.Limits.HasBiproductsOfShape (Fin n) C
-- CategoryTheory.Limits.hasBiproductsOfShape_of_equiv
theorem hasBiproductsOfShape_of_equiv {K : Type w'} [HasBiproductsOfShape K C] (e : J ≃ K) :
    HasBiproductsOfShape J C 
Arguments: {J : Type w} (C : Type uC) [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : Type w'} [CategoryTheory.Limits.HasBiproductsOfShape K C] (e : J ≃ K)
Goal: CategoryTheory.Limits.HasBiproductsOfShape J C
-- CategoryTheory.Limits.biproduct.bicone_π
@[simp]
theorem biproduct.bicone_π (f : J → C) [HasBiproduct f] (b : J) :
    (biproduct.bicone f).π b = biproduct.π f b 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] (b : J)
Goal: (CategoryTheory.Limits.biproduct.bicone f).π b = CategoryTheory.Limits.biproduct.π f b
-- CategoryTheory.Limits.biproduct.bicone_ι
@[simp]
theorem biproduct.bicone_ι (f : J → C) [HasBiproduct f] (b : J) :
    (biproduct.bicone f).ι b = biproduct.ι f b 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] (b : J)
Goal: (CategoryTheory.Limits.biproduct.bicone f).ι b = CategoryTheory.Limits.biproduct.ι f b
-- CategoryTheory.Limits.biproduct.ι_π
@[reassoc]
theorem biproduct.ι_π [DecidableEq J] (f : J → C) [HasBiproduct f] (j j' : J) :
    biproduct.ι f j ≫ biproduct.π f j' = if h : j = j' then eqToHom (congr_arg f h) else 0 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] [DecidableEq J] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] (j j' : J)
Goal: CategoryTheory.Limits.biproduct.ι f j ≫ CategoryTheory.Limits.biproduct.π f j' =
  if h : j = j' then CategoryTheory.eqToHom ⋯ else 0
-- CategoryTheory.Limits.biproduct.ι_π_self
@[reassoc] -- Porting note: both versions proven by simp
theorem biproduct.ι_π_self (f : J → C) [HasBiproduct f] (j : J) :
    biproduct.ι f j ≫ biproduct.π f j = 𝟙 _ 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] (j : J)
Goal: CategoryTheory.Limits.biproduct.ι f j ≫ CategoryTheory.Limits.biproduct.π f j = 𝟙 (f j)
-- CategoryTheory.Limits.biproduct.ι_π_ne
@[reassoc (attr := simp)]
theorem biproduct.ι_π_ne (f : J → C) [HasBiproduct f] {j j' : J} (h : j ≠ j') :
    biproduct.ι f j ≫ biproduct.π f j' = 0 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] {j j' : J} (h : j ≠ j')
Goal: CategoryTheory.Limits.biproduct.ι f j ≫ CategoryTheory.Limits.biproduct.π f j' = 0
-- CategoryTheory.Limits.biproduct.eqToHom_comp_ι
@[reassoc (attr := simp, nolint simpNF)]
theorem biproduct.eqToHom_comp_ι (f : J → C) [HasBiproduct f] {j j' : J} (w : j = j') :
    eqToHom (by simp [w]) ≫ biproduct.ι f j' = biproduct.ι f j 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] {j j' : J} (w : j = j')
Goal: CategoryTheory.eqToHom ⋯ ≫ CategoryTheory.Limits.biproduct.ι f j' = CategoryTheory.Limits.biproduct.ι f j
-- CategoryTheory.Limits.biproduct.π_comp_eqToHom
@[reassoc (attr := simp, nolint simpNF)]
theorem biproduct.π_comp_eqToHom (f : J → C) [HasBiproduct f] {j j' : J} (w : j = j') :
    biproduct.π f j ≫ eqToHom (by simp [w]) = biproduct.π f j' 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) [CategoryTheory.Limits.HasBiproduct f] {j j' : J} (w : j = j')
Goal: CategoryTheory.Limits.biproduct.π f j ≫ CategoryTheory.eqToHom ⋯ = CategoryTheory.Limits.biproduct.π f j'
-- CategoryTheory.Limits.biproduct.lift_π
@[reassoc (attr := simp)]
theorem biproduct.lift_π {f : J → C} [HasBiproduct f] {P : C} (p : ∀ b, P ⟶ f b) (j : J) :
    biproduct.lift p ≫ biproduct.π f j = p j 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f] {P : C} (p : (b : J) → P ⟶ f b) (j : J)
Goal: CategoryTheory.Limits.biproduct.lift p ≫ CategoryTheory.Limits.biproduct.π f j = p j
-- CategoryTheory.Limits.biproduct.ι_desc
@[reassoc (attr := simp)]
theorem biproduct.ι_desc {f : J → C} [HasBiproduct f] {P : C} (p : ∀ b, f b ⟶ P) (j : J) :
    biproduct.ι f j ≫ biproduct.desc p = p j 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f] {P : C} (p : (b : J) → f b ⟶ P) (j : J)
Goal: CategoryTheory.Limits.biproduct.ι f j ≫ CategoryTheory.Limits.biproduct.desc p = p j
-- CategoryTheory.Limits.biproduct.hom_ext
@[ext 1001]
theorem biproduct.hom_ext {f : J → C} [HasBiproduct f] {Z : C} (g h : Z ⟶ ⨁ f)
    (w : ∀ j, g ≫ biproduct.π f j = h ≫ biproduct.π f j) : g = h 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f] {Z : C} (g h : Z ⟶ ⨁ f) (w : ∀ (j : J), g ≫ CategoryTheory.Limits.biproduct.π f j = h ≫ CategoryTheory.Limits.biproduct.π f j)
Goal: g = h
-- CategoryTheory.Limits.biproduct.hom_ext'
@[ext]
theorem biproduct.hom_ext' {f : J → C} [HasBiproduct f] {Z : C} (g h : ⨁ f ⟶ Z)
    (w : ∀ j, biproduct.ι f j ≫ g = biproduct.ι f j ≫ h) : g = h 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f] {Z : C} (g h : ⨁ f ⟶ Z) (w : ∀ (j : J), CategoryTheory.Limits.biproduct.ι f j ≫ g = CategoryTheory.Limits.biproduct.ι f j ≫ h)
Goal: g = h
-- CategoryTheory.Limits.biproduct.isoProduct_hom
@[simp]
theorem biproduct.isoProduct_hom {f : J → C} [HasBiproduct f] :
    (biproduct.isoProduct f).hom = Pi.lift (biproduct.π f) 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f]
Goal: (CategoryTheory.Limits.biproduct.isoProduct f).hom = CategoryTheory.Limits.Pi.lift (CategoryTheory.Limits.biproduct.π f)
-- CategoryTheory.Limits.biproduct.isoProduct_inv
@[simp]
theorem biproduct.isoProduct_inv {f : J → C} [HasBiproduct f] :
    (biproduct.isoProduct f).inv = biproduct.lift (Pi.π f) 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f]
Goal: (CategoryTheory.Limits.biproduct.isoProduct f).inv = CategoryTheory.Limits.biproduct.lift (CategoryTheory.Limits.Pi.π f)
-- CategoryTheory.Limits.biproduct.isoCoproduct_inv
@[simp]
theorem biproduct.isoCoproduct_inv {f : J → C} [HasBiproduct f] :
    (biproduct.isoCoproduct f).inv = Sigma.desc (biproduct.ι f) 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f]
Goal: (CategoryTheory.Limits.biproduct.isoCoproduct f).inv =
  CategoryTheory.Limits.Sigma.desc (CategoryTheory.Limits.biproduct.ι f)
-- CategoryTheory.Limits.biproduct.isoCoproduct_hom
@[simp]
theorem biproduct.isoCoproduct_hom {f : J → C} [HasBiproduct f] :
    (biproduct.isoCoproduct f).hom = biproduct.desc (Sigma.ι f) 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f : J → C} [CategoryTheory.Limits.HasBiproduct f]
Goal: (CategoryTheory.Limits.biproduct.isoCoproduct f).hom =
  CategoryTheory.Limits.biproduct.desc (CategoryTheory.Limits.Sigma.ι f)
-- CategoryTheory.Limits.biproduct.map_eq_map'
theorem biproduct.map_eq_map' {f g : J → C} [HasBiproduct f] [HasBiproduct g] (p : ∀ b, f b ⟶ g b) :
    biproduct.map p = biproduct.map' p 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f g : J → C} [CategoryTheory.Limits.HasBiproduct f] [CategoryTheory.Limits.HasBiproduct g] (p : (b : J) → f b ⟶ g b)
Goal: CategoryTheory.Limits.biproduct.map p = CategoryTheory.Limits.biproduct.map' p
-- CategoryTheory.Limits.biproduct.map_π
@[reassoc (attr := simp)]
theorem biproduct.map_π {f g : J → C} [HasBiproduct f] [HasBiproduct g] (p : ∀ j, f j ⟶ g j)
    (j : J) : biproduct.map p ≫ biproduct.π g j = biproduct.π f j ≫ p j 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f g : J → C} [CategoryTheory.Limits.HasBiproduct f] [CategoryTheory.Limits.HasBiproduct g] (p : (j : J) → f j ⟶ g j) (j : J)
Goal: CategoryTheory.Limits.biproduct.map p ≫ CategoryTheory.Limits.biproduct.π g j =
  CategoryTheory.Limits.biproduct.π f j ≫ p j
-- CategoryTheory.Limits.biproduct.ι_map
@[reassoc (attr := simp)]
theorem biproduct.ι_map {f g : J → C} [HasBiproduct f] [HasBiproduct g] (p : ∀ j, f j ⟶ g j)
    (j : J) : biproduct.ι f j ≫ biproduct.map p = p j ≫ biproduct.ι g j 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f g : J → C} [CategoryTheory.Limits.HasBiproduct f] [CategoryTheory.Limits.HasBiproduct g] (p : (j : J) → f j ⟶ g j) (j : J)
Goal: CategoryTheory.Limits.biproduct.ι f j ≫ CategoryTheory.Limits.biproduct.map p =
  p j ≫ CategoryTheory.Limits.biproduct.ι g j
-- CategoryTheory.Limits.biproduct.map_desc
@[reassoc (attr := simp)]
theorem biproduct.map_desc {f g : J → C} [HasBiproduct f] [HasBiproduct g] (p : ∀ j, f j ⟶ g j)
    {P : C} (k : ∀ j, g j ⟶ P) :
    biproduct.map p ≫ biproduct.desc k = biproduct.desc fun j => p j ≫ k j 
Arguments: {J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {f g : J → C} [CategoryTheory.Limits.HasBiproduct f] [CategoryTheory.Limits.HasBiproduct g] (p : (j : J) → f j ⟶ g j) {P : C} (k : (j : J) → g j ⟶ P)
Goal: CategoryTheory.Limits.biproduct.map p ≫ CategoryTheory.Limits.biproduct.desc k =
  CategoryTheory.Limits.biproduct.desc fun j => p j ≫ k j