ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.Limits.inr_comp_pushoutSymmetry_hom
@[reassoc (attr := simp)]
theorem inr_comp_pushoutSymmetry_hom [HasPushout f g] :
    pushout.inr _ _ ≫ (pushoutSymmetry f g).hom = pushout.inl _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) [CategoryTheory.Limits.HasPushout f g]
Goal: CategoryTheory.Limits.pushout.inr f g ≫ (CategoryTheory.Limits.pushoutSymmetry f g).hom =
  CategoryTheory.Limits.pushout.inl g f
-- CategoryTheory.Limits.inl_comp_pushoutSymmetry_inv
@[reassoc (attr := simp)]
theorem inl_comp_pushoutSymmetry_inv [HasPushout f g] :
    pushout.inl _ _ ≫ (pushoutSymmetry f g).inv = pushout.inr _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) [CategoryTheory.Limits.HasPushout f g]
Goal: CategoryTheory.Limits.pushout.inl g f ≫ (CategoryTheory.Limits.pushoutSymmetry f g).inv =
  CategoryTheory.Limits.pushout.inr f g
-- CategoryTheory.Limits.inr_comp_pushoutSymmetry_inv
@[reassoc (attr := simp)]
theorem inr_comp_pushoutSymmetry_inv [HasPushout f g] :
    pushout.inr _ _ ≫ (pushoutSymmetry f g).inv = pushout.inl _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) [CategoryTheory.Limits.HasPushout f g]
Goal: CategoryTheory.Limits.pushout.inr g f ≫ (CategoryTheory.Limits.pushoutSymmetry f g).inv =
  CategoryTheory.Limits.pushout.inl f g
-- CategoryTheory.Limits.hasPullbacks_of_hasLimit_cospan
theorem hasPullbacks_of_hasLimit_cospan
    [∀ {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z}, HasLimit (cospan f g)] : HasPullbacks C 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [∀ {X Y Z : C} {f : X ⟶ Z} {g : Y ⟶ Z}, CategoryTheory.Limits.HasLimit (CategoryTheory.Limits.cospan f g)]
Goal: CategoryTheory.Limits.HasPullbacks C
-- CategoryTheory.Limits.hasPushouts_of_hasColimit_span
theorem hasPushouts_of_hasColimit_span
    [∀ {X Y Z : C} {f : X ⟶ Y} {g : X ⟶ Z}, HasColimit (span f g)] : HasPushouts C 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [∀ {X Y Z : C} {f : X ⟶ Y} {g : X ⟶ Z}, CategoryTheory.Limits.HasColimit (CategoryTheory.Limits.span f g)]
Goal: CategoryTheory.Limits.HasPushouts C
-- CategoryTheory.Limits.walkingSpanOpEquiv_functor_map
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Goal: ∀ {X Y : (CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)ᵒᵖ} (f : X ⟶ Y),
  CategoryTheory.Limits.walkingSpanOpEquiv.functor.map f =
    (CategoryTheory.Limits.widePushoutShapeOpMap CategoryTheory.Limits.WalkingPair (Opposite.unop Y) (Opposite.unop X)
        f.unop).unop
-- CategoryTheory.Limits.walkingSpanOpEquiv_inverse_obj
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: (X : CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)
Goal: CategoryTheory.Limits.walkingSpanOpEquiv.inverse.obj X = Opposite.op X
-- CategoryTheory.Limits.walkingSpanOpEquiv_unitIso_hom_app
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: (X : (CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)ᵒᵖ)
Goal: CategoryTheory.Limits.walkingSpanOpEquiv.unitIso.hom.app X = 𝟙 X
-- CategoryTheory.Limits.walkingSpanOpEquiv_inverse_map
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: {X₁ X₂ : CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair}
Goal: ∀ (a : X₁ ⟶ X₂),
  CategoryTheory.Limits.walkingSpanOpEquiv.inverse.map a =
    CategoryTheory.Limits.widePullbackShapeOpMap CategoryTheory.Limits.WalkingPair X₁ X₂ a
-- CategoryTheory.Limits.walkingSpanOpEquiv_counitIso_hom_app
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: (X : CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)
Goal: CategoryTheory.Limits.walkingSpanOpEquiv.counitIso.hom.app X = 𝟙 X
-- CategoryTheory.Limits.walkingSpanOpEquiv_functor_obj
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: (X : (CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)ᵒᵖ)
Goal: CategoryTheory.Limits.walkingSpanOpEquiv.functor.obj X = Opposite.unop X
-- CategoryTheory.Limits.walkingSpanOpEquiv_unitIso_inv_app
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: (X : (CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)ᵒᵖ)
Goal: CategoryTheory.Limits.walkingSpanOpEquiv.unitIso.inv.app X = 𝟙 X
-- CategoryTheory.Limits.walkingSpanOpEquiv_counitIso_inv_app
@[simps!]
def walkingSpanOpEquiv : WalkingSpanᵒᵖ ≌ WalkingCospan 
Arguments: (X : CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)
Goal: CategoryTheory.Limits.walkingSpanOpEquiv.counitIso.inv.app X = 𝟙 X
-- CategoryTheory.Limits.walkingCospanOpEquiv_functor_map
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Goal: ∀ {X Y : (CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)ᵒᵖ} (f : X ⟶ Y),
  CategoryTheory.Limits.walkingCospanOpEquiv.functor.map f =
    (CategoryTheory.Limits.widePullbackShapeOpMap CategoryTheory.Limits.WalkingPair (Opposite.unop Y) (Opposite.unop X)
        f.unop).unop
-- CategoryTheory.Limits.walkingCospanOpEquiv_unitIso_inv_app
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: (X : (CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)ᵒᵖ)
Goal: CategoryTheory.Limits.walkingCospanOpEquiv.unitIso.inv.app X = 𝟙 X
-- CategoryTheory.Limits.walkingCospanOpEquiv_inverse_obj
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: (X : CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)
Goal: CategoryTheory.Limits.walkingCospanOpEquiv.inverse.obj X = Opposite.op X
-- CategoryTheory.Limits.walkingCospanOpEquiv_unitIso_hom_app
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: (X : (CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)ᵒᵖ)
Goal: CategoryTheory.Limits.walkingCospanOpEquiv.unitIso.hom.app X = 𝟙 X
-- CategoryTheory.Limits.walkingCospanOpEquiv_counitIso_hom_app
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: (X : CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)
Goal: CategoryTheory.Limits.walkingCospanOpEquiv.counitIso.hom.app X = 𝟙 X
-- CategoryTheory.Limits.walkingCospanOpEquiv_inverse_map
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: {X Y : CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair}
Goal: ∀ (a : X ⟶ Y),
  CategoryTheory.Limits.walkingCospanOpEquiv.inverse.map a =
    CategoryTheory.Limits.widePushoutShapeOpMap CategoryTheory.Limits.WalkingPair X Y a
-- CategoryTheory.Limits.walkingCospanOpEquiv_functor_obj
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: (X : (CategoryTheory.Limits.WidePullbackShape CategoryTheory.Limits.WalkingPair)ᵒᵖ)
Goal: CategoryTheory.Limits.walkingCospanOpEquiv.functor.obj X = Opposite.unop X
-- CategoryTheory.Limits.walkingCospanOpEquiv_counitIso_inv_app
@[simps!]
def walkingCospanOpEquiv : WalkingCospanᵒᵖ ≌ WalkingSpan 
Arguments: (X : CategoryTheory.Limits.WidePushoutShape CategoryTheory.Limits.WalkingPair)
Goal: CategoryTheory.Limits.walkingCospanOpEquiv.counitIso.inv.app X = 𝟙 X
-- CategoryTheory.Limits.isLimitConeLeftOpOfCocone_lift
@[simps]
def isLimitConeLeftOpOfCocone (F : J ⥤ Cᵒᵖ) {c : Cocone F} (hc : IsColimit c) :
    IsLimit (coneLeftOpOfCocone c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cocone F} (hc : CategoryTheory.Limits.IsColimit c) (s : CategoryTheory.Limits.Cone F.leftOp)
Goal: (CategoryTheory.Limits.isLimitConeLeftOpOfCocone F hc).lift s =
  (hc.desc (CategoryTheory.Limits.coconeOfConeLeftOp s)).unop
-- CategoryTheory.Limits.isColimitCoconeLeftOpOfCone_desc
@[simps]
def isColimitCoconeLeftOpOfCone (F : J ⥤ Cᵒᵖ) {c : Cone F} (hc : IsLimit c) :
    IsColimit (coconeLeftOpOfCone c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cone F} (hc : CategoryTheory.Limits.IsLimit c) (s : CategoryTheory.Limits.Cocone F.leftOp)
Goal: (CategoryTheory.Limits.isColimitCoconeLeftOpOfCone F hc).desc s =
  (hc.lift (CategoryTheory.Limits.coneOfCoconeLeftOp s)).unop
-- CategoryTheory.Limits.isLimitConeRightOpOfCocone_lift
@[simps]
def isLimitConeRightOpOfCocone (F : Jᵒᵖ ⥤ C) {c : Cocone F} (hc : IsColimit c) :
    IsLimit (coneRightOpOfCocone c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ C) {c : CategoryTheory.Limits.Cocone F} (hc : CategoryTheory.Limits.IsColimit c) (s : CategoryTheory.Limits.Cone F.rightOp)
Goal: (CategoryTheory.Limits.isLimitConeRightOpOfCocone F hc).lift s =
  (hc.desc (CategoryTheory.Limits.coconeOfConeRightOp s)).op
-- CategoryTheory.Limits.isColimitCoconeRightOpOfCone_desc
@[simps]
def isColimitCoconeRightOpOfCone (F : Jᵒᵖ ⥤ C) {c : Cone F} (hc : IsLimit c) :
    IsColimit (coconeRightOpOfCone c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ C) {c : CategoryTheory.Limits.Cone F} (hc : CategoryTheory.Limits.IsLimit c) (s : CategoryTheory.Limits.Cocone F.rightOp)
Goal: (CategoryTheory.Limits.isColimitCoconeRightOpOfCone F hc).desc s =
  (hc.lift (CategoryTheory.Limits.coneOfCoconeRightOp s)).op
-- CategoryTheory.Limits.isLimitConeUnopOfCocone_lift
@[simps]
def isLimitConeUnopOfCocone (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : Cocone F} (hc : IsColimit c) :
    IsLimit (coneUnopOfCocone c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cocone F} (hc : CategoryTheory.Limits.IsColimit c) (s : CategoryTheory.Limits.Cone F.unop)
Goal: (CategoryTheory.Limits.isLimitConeUnopOfCocone F hc).lift s = (hc.desc (CategoryTheory.Limits.coconeOfConeUnop s)).unop
-- CategoryTheory.Limits.isColimitCoconeUnopOfCone_desc
@[simps]
def isColimitCoconeUnopOfCone (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : Cone F} (hc : IsLimit c) :
    IsColimit (coconeUnopOfCone c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cone F} (hc : CategoryTheory.Limits.IsLimit c) (s : CategoryTheory.Limits.Cocone F.unop)
Goal: (CategoryTheory.Limits.isColimitCoconeUnopOfCone F hc).desc s =
  (hc.lift (CategoryTheory.Limits.coneOfCoconeUnop s)).unop
-- CategoryTheory.Limits.isLimitConeOfCoconeLeftOp_lift
@[simps]
def isLimitConeOfCoconeLeftOp (F : J ⥤ Cᵒᵖ) {c : Cocone F.leftOp} (hc : IsColimit c) :
    IsLimit (coneOfCoconeLeftOp c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cocone F.leftOp} (hc : CategoryTheory.Limits.IsColimit c) (s : CategoryTheory.Limits.Cone F)
Goal: (CategoryTheory.Limits.isLimitConeOfCoconeLeftOp F hc).lift s =
  (hc.desc (CategoryTheory.Limits.coconeLeftOpOfCone s)).op
-- CategoryTheory.Limits.isColimitCoconeOfConeLeftOp_desc
@[simps]
def isColimitCoconeOfConeLeftOp (F : J ⥤ Cᵒᵖ) {c : Cone F.leftOp} (hc : IsLimit c) :
    IsColimit (coconeOfConeLeftOp c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cone F.leftOp} (hc : CategoryTheory.Limits.IsLimit c) (s : CategoryTheory.Limits.Cocone F)
Goal: (CategoryTheory.Limits.isColimitCoconeOfConeLeftOp F hc).desc s =
  (hc.lift (CategoryTheory.Limits.coneLeftOpOfCocone s)).op
-- CategoryTheory.Limits.isLimitConeOfCoconeRightOp_lift
@[simps]
def isLimitConeOfCoconeRightOp (F : Jᵒᵖ ⥤ C) {c : Cocone F.rightOp} (hc : IsColimit c) :
    IsLimit (coneOfCoconeRightOp c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ C) {c : CategoryTheory.Limits.Cocone F.rightOp} (hc : CategoryTheory.Limits.IsColimit c) (s : CategoryTheory.Limits.Cone F)
Goal: (CategoryTheory.Limits.isLimitConeOfCoconeRightOp F hc).lift s =
  (hc.desc (CategoryTheory.Limits.coconeRightOpOfCone s)).unop
-- CategoryTheory.Limits.isColimitCoconeOfConeRightOp_desc
@[simps]
def isColimitCoconeOfConeRightOp (F : Jᵒᵖ ⥤ C) {c : Cone F.rightOp} (hc : IsLimit c) :
    IsColimit (coconeOfConeRightOp c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ C) {c : CategoryTheory.Limits.Cone F.rightOp} (hc : CategoryTheory.Limits.IsLimit c) (s : CategoryTheory.Limits.Cocone F)
Goal: (CategoryTheory.Limits.isColimitCoconeOfConeRightOp F hc).desc s =
  (hc.lift (CategoryTheory.Limits.coneRightOpOfCocone s)).unop
-- CategoryTheory.Limits.isLimitConeOfCoconeUnop_lift
@[simps]
def isLimitConeOfCoconeUnop (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : Cocone F.unop} (hc : IsColimit c) :
    IsLimit (coneOfCoconeUnop c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cocone F.unop} (hc : CategoryTheory.Limits.IsColimit c) (s : CategoryTheory.Limits.Cone F)
Goal: (CategoryTheory.Limits.isLimitConeOfCoconeUnop F hc).lift s = (hc.desc (CategoryTheory.Limits.coconeUnopOfCone s)).op
-- CategoryTheory.Limits.isColimitConeOfCoconeUnop_desc
@[simps]
def isColimitConeOfCoconeUnop (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : Cone F.unop} (hc : IsLimit c) :
    IsColimit (coconeOfConeUnop c) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : Jᵒᵖ ⥤ Cᵒᵖ) {c : CategoryTheory.Limits.Cone F.unop} (hc : CategoryTheory.Limits.IsLimit c) (s : CategoryTheory.Limits.Cocone F)
Goal: (CategoryTheory.Limits.isColimitConeOfCoconeUnop F hc).desc s = (hc.lift (CategoryTheory.Limits.coneUnopOfCocone s)).op
-- CategoryTheory.Limits.hasLimit_of_hasColimit_leftOp
theorem hasLimit_of_hasColimit_leftOp (F : J ⥤ Cᵒᵖ) [HasColimit F.leftOp] : HasLimit F 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ Cᵒᵖ) [CategoryTheory.Limits.HasColimit F.leftOp]
Goal: CategoryTheory.Limits.HasLimit F
-- CategoryTheory.Limits.hasLimit_of_hasColimit_op
theorem hasLimit_of_hasColimit_op (F : J ⥤ C) [HasColimit F.op] : HasLimit F 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ C) [CategoryTheory.Limits.HasColimit F.op]
Goal: CategoryTheory.Limits.HasLimit F
-- CategoryTheory.Limits.hasLimit_op_of_hasColimit
theorem hasLimit_op_of_hasColimit (F : J ⥤ C) [HasColimit F] : HasLimit F.op 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ C) [CategoryTheory.Limits.HasColimit F]
Goal: CategoryTheory.Limits.HasLimit F.op
-- CategoryTheory.Limits.hasLimitsOfShape_op_of_hasColimitsOfShape
theorem hasLimitsOfShape_op_of_hasColimitsOfShape [HasColimitsOfShape Jᵒᵖ C] :
    HasLimitsOfShape J Cᵒᵖ 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] [CategoryTheory.Limits.HasColimitsOfShape Jᵒᵖ C]
Goal: CategoryTheory.Limits.HasLimitsOfShape J Cᵒᵖ
-- CategoryTheory.Limits.hasLimitsOfShape_of_hasColimitsOfShape_op
theorem hasLimitsOfShape_of_hasColimitsOfShape_op [HasColimitsOfShape Jᵒᵖ Cᵒᵖ] :
    HasLimitsOfShape J C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] [CategoryTheory.Limits.HasColimitsOfShape Jᵒᵖ Cᵒᵖ]
Goal: CategoryTheory.Limits.HasLimitsOfShape J C
-- CategoryTheory.Limits.hasLimits_of_hasColimits_op
theorem hasLimits_of_hasColimits_op [HasColimits Cᵒᵖ] : HasLimits C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasColimits Cᵒᵖ]
Goal: CategoryTheory.Limits.HasLimits C
-- CategoryTheory.Limits.has_cofiltered_limits_of_has_filtered_colimits_op
theorem has_cofiltered_limits_of_has_filtered_colimits_op [HasFilteredColimitsOfSize.{v₂, u₂} Cᵒᵖ] :
    HasCofilteredLimitsOfSize.{v₂, u₂} C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasFilteredColimitsOfSize.{v₂, u₂, v₁, u₁} Cᵒᵖ]
Goal: CategoryTheory.Limits.HasCofilteredLimitsOfSize.{v₂, u₂, v₁, u₁} C
-- CategoryTheory.Limits.hasColimit_of_hasLimit_leftOp
theorem hasColimit_of_hasLimit_leftOp (F : J ⥤ Cᵒᵖ) [HasLimit F.leftOp] : HasColimit F 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ Cᵒᵖ) [CategoryTheory.Limits.HasLimit F.leftOp]
Goal: CategoryTheory.Limits.HasColimit F
-- CategoryTheory.Limits.hasColimit_of_hasLimit_op
theorem hasColimit_of_hasLimit_op (F : J ⥤ C) [HasLimit F.op] : HasColimit F 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ C) [CategoryTheory.Limits.HasLimit F.op]
Goal: CategoryTheory.Limits.HasColimit F
-- CategoryTheory.Limits.hasColimit_op_of_hasLimit
theorem hasColimit_op_of_hasLimit (F : J ⥤ C) [HasLimit F] : HasColimit F.op 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] (F : J ⥤ C) [CategoryTheory.Limits.HasLimit F]
Goal: CategoryTheory.Limits.HasColimit F.op
-- CategoryTheory.Limits.hasColimitsOfShape_of_hasLimitsOfShape_op
theorem hasColimitsOfShape_of_hasLimitsOfShape_op [HasLimitsOfShape Jᵒᵖ Cᵒᵖ] :
    HasColimitsOfShape J C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : Type u₂} [CategoryTheory.Category.{v₂, u₂} J] [CategoryTheory.Limits.HasLimitsOfShape Jᵒᵖ Cᵒᵖ]
Goal: CategoryTheory.Limits.HasColimitsOfShape J C
-- CategoryTheory.Limits.hasColimits_of_hasLimits_op
theorem hasColimits_of_hasLimits_op [HasLimits Cᵒᵖ] : HasColimits C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasLimits Cᵒᵖ]
Goal: CategoryTheory.Limits.HasColimits C
-- CategoryTheory.Limits.has_filtered_colimits_of_has_cofiltered_limits_op
theorem has_filtered_colimits_of_has_cofiltered_limits_op [HasCofilteredLimitsOfSize.{v₂, u₂} Cᵒᵖ] :
    HasFilteredColimitsOfSize.{v₂, u₂} C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasCofilteredLimitsOfSize.{v₂, u₂, v₁, u₁} Cᵒᵖ]
Goal: CategoryTheory.Limits.HasFilteredColimitsOfSize.{v₂, u₂, v₁, u₁} C
-- CategoryTheory.Limits.hasCoproductsOfShape_of_opposite
theorem hasCoproductsOfShape_of_opposite [HasProductsOfShape X Cᵒᵖ] : HasCoproductsOfShape X C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] (X : Type v₂) [CategoryTheory.Limits.HasProductsOfShape X Cᵒᵖ]
Goal: CategoryTheory.Limits.HasCoproductsOfShape X C
-- CategoryTheory.Limits.hasProductsOfShape_of_opposite
theorem hasProductsOfShape_of_opposite [HasCoproductsOfShape X Cᵒᵖ] : HasProductsOfShape X C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] (X : Type v₂) [CategoryTheory.Limits.HasCoproductsOfShape X Cᵒᵖ]
Goal: CategoryTheory.Limits.HasProductsOfShape X C
-- CategoryTheory.Limits.hasProducts_of_opposite
theorem hasProducts_of_opposite [HasCoproducts.{v₂} Cᵒᵖ] : HasProducts.{v₂} C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasCoproducts Cᵒᵖ]
Goal: CategoryTheory.Limits.HasProducts C
-- CategoryTheory.Limits.hasCoproducts_of_opposite
theorem hasCoproducts_of_opposite [HasProducts.{v₂} Cᵒᵖ] : HasCoproducts.{v₂} C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasProducts Cᵒᵖ]
Goal: CategoryTheory.Limits.HasCoproducts C
-- CategoryTheory.Limits.hasFiniteCoproducts_of_opposite
theorem hasFiniteCoproducts_of_opposite [HasFiniteProducts Cᵒᵖ] : HasFiniteCoproducts C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasFiniteProducts Cᵒᵖ]
Goal: CategoryTheory.Limits.HasFiniteCoproducts C
-- CategoryTheory.Limits.hasFiniteProducts_of_opposite
theorem hasFiniteProducts_of_opposite [HasFiniteCoproducts Cᵒᵖ] : HasFiniteProducts C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasFiniteCoproducts Cᵒᵖ]
Goal: CategoryTheory.Limits.HasFiniteProducts C
-- CategoryTheory.Limits.opCoproductIsoProduct'_inv_comp_inj
theorem opCoproductIsoProduct'_inv_comp_inj {c : Cofan Z} {f : Fan (op <| Z ·)}
    (hc : IsColimit c) (hf : IsLimit f) (b : α) :
    (opCoproductIsoProduct' hc hf).inv ≫ (c.inj b).op = f.proj b 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {α : Type u_1} {Z : α → C} {c : CategoryTheory.Limits.Cofan Z} {f : CategoryTheory.Limits.Fan fun x => Opposite.op (Z x)} (hc : CategoryTheory.Limits.IsColimit c) (hf : CategoryTheory.Limits.IsLimit f) (b : α)
Goal: (CategoryTheory.Limits.opCoproductIsoProduct' hc hf).inv ≫ (c.inj b).op = f.proj b
-- CategoryTheory.Limits.opCoproductIsoProduct'_comp_self
theorem opCoproductIsoProduct'_comp_self {c c' : Cofan Z} {f : Fan (op <| Z ·)}
    (hc : IsColimit c) (hc' : IsColimit c') (hf : IsLimit f) :
    (opCoproductIsoProduct' hc hf).hom ≫ (opCoproductIsoProduct' hc' hf).inv =
    (hc.coconePointUniqueUpToIso hc').op.inv 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {α : Type u_1} {Z : α → C} {c c' : CategoryTheory.Limits.Cofan Z} {f : CategoryTheory.Limits.Fan fun x => Opposite.op (Z x)} (hc : CategoryTheory.Limits.IsColimit c) (hc' : CategoryTheory.Limits.IsColimit c') (hf : CategoryTheory.Limits.IsLimit f)
Goal: (CategoryTheory.Limits.opCoproductIsoProduct' hc hf).hom ≫ (CategoryTheory.Limits.opCoproductIsoProduct' hc' hf).inv =
  (hc.coconePointUniqueUpToIso hc').op.inv
-- CategoryTheory.Limits.opCoproductIsoProduct_inv_comp_ι
theorem opCoproductIsoProduct_inv_comp_ι [HasCoproduct Z] (b : α) :
    (opCoproductIsoProduct Z).inv ≫ (Sigma.ι Z b).op = Pi.π (op <| Z ·) b 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {α : Type u_1} (Z : α → C) [CategoryTheory.Limits.HasCoproduct Z] (b : α)
Goal: (CategoryTheory.Limits.opCoproductIsoProduct Z).inv ≫ (CategoryTheory.Limits.Sigma.ι Z b).op =
  CategoryTheory.Limits.Pi.π (fun x => Opposite.op (Z x)) b
-- CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct'_hom
theorem desc_op_comp_opCoproductIsoProduct'_hom {c : Cofan Z} {f : Fan (op <| Z ·)}
    (hc : IsColimit c) (hf : IsLimit f) (c' : Cofan Z) :
    (hc.desc c').op ≫ (opCoproductIsoProduct' hc hf).hom = hf.lift c'.op 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {α : Type u_1} {Z : α → C} {c : CategoryTheory.Limits.Cofan Z} {f : CategoryTheory.Limits.Fan fun x => Opposite.op (Z x)} (hc : CategoryTheory.Limits.IsColimit c) (hf : CategoryTheory.Limits.IsLimit f) (c' : CategoryTheory.Limits.Cofan Z)
Goal: (hc.desc c').op ≫ (CategoryTheory.Limits.opCoproductIsoProduct' hc hf).hom = hf.lift c'.op
-- CategoryTheory.Limits.desc_op_comp_opCoproductIsoProduct_hom
theorem desc_op_comp_opCoproductIsoProduct_hom [HasCoproduct Z] {X : C} (π : (a : α) → Z a ⟶ X) :
    (Sigma.desc π).op ≫ (opCoproductIsoProduct Z).hom = Pi.lift (fun a ↦ (π a).op) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {α : Type u_1} {Z : α → C} [CategoryTheory.Limits.HasCoproduct Z] {X : C} (π : (a : α) → Z a ⟶ X)
Goal: (CategoryTheory.Limits.Sigma.desc π).op ≫ (CategoryTheory.Limits.opCoproductIsoProduct Z).hom =
  CategoryTheory.Limits.Pi.lift fun a => (π a).op
-- CategoryTheory.Limits.proj_comp_opProductIsoCoproduct'_hom
theorem proj_comp_opProductIsoCoproduct'_hom {f : Fan Z} {c : Cofan (op <| Z ·)}
    (hf : IsLimit f) (hc : IsColimit c) (b : α) :
    (f.proj b).op ≫ (opProductIsoCoproduct' hf hc).hom = c.inj b 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {α : Type u_1} {Z : α → C} {f : CategoryTheory.Limits.Fan Z} {c : CategoryTheory.Limits.Cofan fun x => Opposite.op (Z x)} (hf : CategoryTheory.Limits.IsLimit f) (hc : CategoryTheory.Limits.IsColimit c) (b : α)
Goal: (f.proj b).op ≫ (CategoryTheory.Limits.opProductIsoCoproduct' hf hc).hom = c.inj b