ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.IsPushout.paste_horiz_iff
theorem paste_horiz_iff {X₁₁ X₁₂ X₁₃ X₂₁ X₂₂ X₂₃ : C} {h₁₁ : X₁₁ ⟶ X₁₂} {h₁₂ : X₁₂ ⟶ X₁₃}
    {h₂₁ : X₂₁ ⟶ X₂₂} {h₂₂ : X₂₂ ⟶ X₂₃} {v₁₁ : X₁₁ ⟶ X₂₁} {v₁₂ : X₁₂ ⟶ X₂₂} {v₁₃ : X₁₃ ⟶ X₂₃}
    (s : IsPushout h₁₁ v₁₁ v₁₂ h₂₁) (e : h₁₂ ≫ v₁₃ = v₁₂ ≫ h₂₂) :
    IsPushout (h₁₁ ≫ h₁₂) v₁₁ v₁₃ (h₂₁ ≫ h₂₂) ↔ IsPushout h₁₂ v₁₂ v₁₃ h₂₂ 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X₁₁ X₁₂ X₁₃ X₂₁ X₂₂ X₂₃ : C} {h₁₁ : X₁₁ ⟶ X₁₂} {h₁₂ : X₁₂ ⟶ X₁₃} {h₂₁ : X₂₁ ⟶ X₂₂} {h₂₂ : X₂₂ ⟶ X₂₃} {v₁₁ : X₁₁ ⟶ X₂₁} {v₁₂ : X₁₂ ⟶ X₂₂} {v₁₃ : X₁₃ ⟶ X₂₃} (s : CategoryTheory.IsPushout h₁₁ v₁₁ v₁₂ h₂₁) (e : h₁₂ ≫ v₁₃ = v₁₂ ≫ h₂₂)
Goal: CategoryTheory.IsPushout (h₁₁ ≫ h₁₂) v₁₁ v₁₃ (h₂₁ ≫ h₂₂) ↔ CategoryTheory.IsPushout h₁₂ v₁₂ v₁₃ h₂₂
-- CategoryTheory.IsPushout.of_top'
theorem of_top' {X₁₁ X₁₂ X₂₁ X₂₂ X₃₁ X₃₂ : C} {h₁₁ : X₁₁ ⟶ X₁₂} {h₂₁ : X₂₁ ⟶ X₂₂} {h₃₁ : X₃₁ ⟶ X₃₂}
    {v₁₁ : X₁₁ ⟶ X₂₁} {v₁₂ : X₁₂ ⟶ X₂₂} {v₁₃ : X₁₂ ⟶ X₃₂} {v₂₁ : X₂₁ ⟶ X₃₁}
    (s : IsPushout h₁₁ (v₁₁ ≫ v₂₁) v₁₃ h₃₁) (t : IsPushout h₁₁ v₁₁ v₁₂ h₂₁) :
      IsPushout h₂₁ v₂₁ (t.desc v₁₃ (v₂₁ ≫ h₃₁) (by rw [s.w, Category.assoc])) h₃₁ 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X₁₁ X₁₂ X₂₁ X₂₂ X₃₁ X₃₂ : C} {h₁₁ : X₁₁ ⟶ X₁₂} {h₂₁ : X₂₁ ⟶ X₂₂} {h₃₁ : X₃₁ ⟶ X₃₂} {v₁₁ : X₁₁ ⟶ X₂₁} {v₁₂ : X₁₂ ⟶ X₂₂} {v₁₃ : X₁₂ ⟶ X₃₂} {v₂₁ : X₂₁ ⟶ X₃₁} (s : CategoryTheory.IsPushout h₁₁ (v₁₁ ≫ v₂₁) v₁₃ h₃₁) (t : CategoryTheory.IsPushout h₁₁ v₁₁ v₁₂ h₂₁)
Goal: CategoryTheory.IsPushout h₂₁ v₂₁ (t.desc v₁₃ (v₂₁ ≫ h₃₁) ⋯) h₃₁
-- CategoryTheory.IsPushout.of_left'
theorem of_left' {X₁₁ X₁₂ X₁₃ X₂₁ X₂₂ X₂₃ : C} {h₁₁ : X₁₁ ⟶ X₁₂} {h₁₂ : X₁₂ ⟶ X₁₃} {h₂₁ : X₂₁ ⟶ X₂₂}
    {h₂₃ : X₂₁ ⟶ X₂₃} {v₁₁ : X₁₁ ⟶ X₂₁} {v₁₂ : X₁₂ ⟶ X₂₂} {v₁₃ : X₁₃ ⟶ X₂₃}
    (s : IsPushout (h₁₁ ≫ h₁₂) v₁₁ v₁₃ h₂₃) (t : IsPushout h₁₁ v₁₁ v₁₂ h₂₁) :
    IsPushout h₁₂ v₁₂ v₁₃ (t.desc (h₁₂ ≫ v₁₃) h₂₃ (by rw [← Category.assoc, s.w])) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X₁₁ X₁₂ X₁₃ X₂₁ X₂₂ X₂₃ : C} {h₁₁ : X₁₁ ⟶ X₁₂} {h₁₂ : X₁₂ ⟶ X₁₃} {h₂₁ : X₂₁ ⟶ X₂₂} {h₂₃ : X₂₁ ⟶ X₂₃} {v₁₁ : X₁₁ ⟶ X₂₁} {v₁₂ : X₁₂ ⟶ X₂₂} {v₁₃ : X₁₃ ⟶ X₂₃} (s : CategoryTheory.IsPushout (h₁₁ ≫ h₁₂) v₁₁ v₁₃ h₂₃) (t : CategoryTheory.IsPushout h₁₁ v₁₁ v₁₂ h₂₁)
Goal: CategoryTheory.IsPushout h₁₂ v₁₂ v₁₃ (t.desc (h₁₂ ≫ v₁₃) h₂₃ ⋯)
-- CategoryTheory.IsPushout.of_isBilimit
theorem of_isBilimit {b : BinaryBicone X Y} (h : b.IsBilimit) :
    IsPushout (0 : 0 ⟶ X) (0 : 0 ⟶ Y) b.inl b.inr 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {b : CategoryTheory.Limits.BinaryBicone X Y} (h : b.IsBilimit)
Goal: CategoryTheory.IsPushout 0 0 b.inl b.inr
-- CategoryTheory.IsPushout.of_has_biproduct
@[simp]
theorem of_has_biproduct (X Y : C) [HasBinaryBiproduct X Y] :
    IsPushout (0 : 0 ⟶ X) (0 : 0 ⟶ Y) biprod.inl biprod.inr 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryBiproduct X Y]
Goal: CategoryTheory.IsPushout 0 0 CategoryTheory.Limits.biprod.inl CategoryTheory.Limits.biprod.inr
-- CategoryTheory.IsPushout.inl_snd'
theorem inl_snd' {b : BinaryBicone X Y} (h : b.IsBilimit) :
    IsPushout b.inl (0 : X ⟶ 0) b.snd (0 : 0 ⟶ Y) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {b : CategoryTheory.Limits.BinaryBicone X Y} (h : b.IsBilimit)
Goal: CategoryTheory.IsPushout b.inl 0 b.snd 0
-- CategoryTheory.IsPushout.inl_snd
theorem inl_snd (X Y : C) [HasBinaryBiproduct X Y] :
    IsPushout biprod.inl (0 : X ⟶ 0) biprod.snd (0 : 0 ⟶ Y) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryBiproduct X Y]
Goal: CategoryTheory.IsPushout CategoryTheory.Limits.biprod.inl 0 CategoryTheory.Limits.biprod.snd 0
-- CategoryTheory.IsPushout.inr_fst'
theorem inr_fst' {b : BinaryBicone X Y} (h : b.IsBilimit) :
    IsPushout b.inr (0 : Y ⟶ 0) b.fst (0 : 0 ⟶ X) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {b : CategoryTheory.Limits.BinaryBicone X Y} (h : b.IsBilimit)
Goal: CategoryTheory.IsPushout b.inr 0 b.fst 0
-- CategoryTheory.IsPushout.inr_fst
theorem inr_fst (X Y : C) [HasBinaryBiproduct X Y] :
    IsPushout biprod.inr (0 : Y ⟶ 0) biprod.fst (0 : 0 ⟶ X) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryBiproduct X Y]
Goal: CategoryTheory.IsPushout CategoryTheory.Limits.biprod.inr 0 CategoryTheory.Limits.biprod.fst 0
-- CategoryTheory.IsPushout.of_is_bilimit'
theorem of_is_bilimit' {b : BinaryBicone X Y} (h : b.IsBilimit) :
    IsPushout b.fst b.snd (0 : X ⟶ 0) (0 : Y ⟶ 0) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {b : CategoryTheory.Limits.BinaryBicone X Y} (h : b.IsBilimit)
Goal: CategoryTheory.IsPushout b.fst b.snd 0 0
-- CategoryTheory.IsPushout.of_hasBinaryBiproduct
theorem of_hasBinaryBiproduct (X Y : C) [HasBinaryBiproduct X Y] :
    IsPushout biprod.fst biprod.snd (0 : X ⟶ 0) (0 : Y ⟶ 0) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryBiproduct X Y]
Goal: CategoryTheory.IsPushout CategoryTheory.Limits.biprod.fst CategoryTheory.Limits.biprod.snd 0 0
-- CategoryTheory.IsPushout.op
theorem op (h : IsPushout f g inl inr) : IsPullback inr.op inl.op g.op f.op 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X Y P : C} {f : Z ⟶ X} {g : Z ⟶ Y} {inl : X ⟶ P} {inr : Y ⟶ P} (h : CategoryTheory.IsPushout f g inl inr)
Goal: CategoryTheory.IsPullback inr.op inl.op g.op f.op
-- CategoryTheory.IsPushout.unop
theorem unop {Z X Y P : Cᵒᵖ} {f : Z ⟶ X} {g : Z ⟶ Y} {inl : X ⟶ P} {inr : Y ⟶ P}
    (h : IsPushout f g inl inr) : IsPullback inr.unop inl.unop g.unop f.unop 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X Y P : Cᵒᵖ} {f : Z ⟶ X} {g : Z ⟶ Y} {inl : X ⟶ P} {inr : Y ⟶ P} (h : CategoryTheory.IsPushout f g inl inr)
Goal: CategoryTheory.IsPullback inr.unop inl.unop g.unop f.unop
-- CategoryTheory.IsPushout.of_horiz_isIso
theorem of_horiz_isIso [IsIso f] [IsIso inr] (sq : CommSq f g inl inr) : IsPushout f g inl inr 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X Y P : C} {f : Z ⟶ X} {g : Z ⟶ Y} {inl : X ⟶ P} {inr : Y ⟶ P} [CategoryTheory.IsIso f] [CategoryTheory.IsIso inr] (sq : CategoryTheory.CommSq f g inl inr)
Goal: CategoryTheory.IsPushout f g inl inr
-- CategoryTheory.IsPushout.of_vert_isIso
theorem of_vert_isIso [IsIso g] [IsIso inl] (sq : CommSq f g inl inr) : IsPushout f g inl inr 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X Y P : C} {f : Z ⟶ X} {g : Z ⟶ Y} {inl : X ⟶ P} {inr : Y ⟶ P} [CategoryTheory.IsIso g] [CategoryTheory.IsIso inl] (sq : CategoryTheory.CommSq f g inl inr)
Goal: CategoryTheory.IsPushout f g inl inr
-- CategoryTheory.IsPushout.of_id_fst
lemma of_id_fst : IsPushout (𝟙 _) f f (𝟙 _) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X : C} {f : Z ⟶ X}
Goal: CategoryTheory.IsPushout (𝟙 Z) f f (𝟙 X)
-- CategoryTheory.IsPushout.of_id_snd
lemma of_id_snd : IsPushout f (𝟙 _) (𝟙 _) f 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X : C} {f : Z ⟶ X}
Goal: CategoryTheory.IsPushout f (𝟙 Z) (𝟙 X) f
-- CategoryTheory.IsPushout.id_vert
lemma id_vert (f : X ⟶ Z) : IsPushout f (𝟙 X) (𝟙 Z) f 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X : C} (f : X ⟶ Z)
Goal: CategoryTheory.IsPushout f (𝟙 X) (𝟙 Z) f
-- CategoryTheory.IsPushout.id_horiz
lemma id_horiz (f : X ⟶ Z) : IsPushout (𝟙 X) f f (𝟙 Z) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {Z X : C} (f : X ⟶ Z)
Goal: CategoryTheory.IsPushout (𝟙 X) f f (𝟙 Z)
-- CategoryTheory.BicartesianSq.of_isPullback_isPushout
theorem of_isPullback_isPushout (p₁ : IsPullback f g h i) (p₂ : IsPushout f g h i) :
    BicartesianSq f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} (p₁ : CategoryTheory.IsPullback f g h i) (p₂ : CategoryTheory.IsPushout f g h i)
Goal: CategoryTheory.BicartesianSq f g h i
-- CategoryTheory.BicartesianSq.flip
theorem flip (p : BicartesianSq f g h i) : BicartesianSq g f i h 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} (p : CategoryTheory.BicartesianSq f g h i)
Goal: CategoryTheory.BicartesianSq g f i h
-- CategoryTheory.BicartesianSq.of_is_biproduct₁
theorem of_is_biproduct₁ {b : BinaryBicone X Y} (h : b.IsBilimit) :
    BicartesianSq b.fst b.snd (0 : X ⟶ 0) (0 : Y ⟶ 0) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {b : CategoryTheory.Limits.BinaryBicone X Y} (h : b.IsBilimit)
Goal: CategoryTheory.BicartesianSq b.fst b.snd 0 0
-- CategoryTheory.BicartesianSq.of_is_biproduct₂
theorem of_is_biproduct₂ {b : BinaryBicone X Y} (h : b.IsBilimit) :
    BicartesianSq (0 : 0 ⟶ X) (0 : 0 ⟶ Y) b.inl b.inr 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {b : CategoryTheory.Limits.BinaryBicone X Y} (h : b.IsBilimit)
Goal: CategoryTheory.BicartesianSq 0 0 b.inl b.inr
-- CategoryTheory.BicartesianSq.of_has_biproduct₁
@[simp]
theorem of_has_biproduct₁ [HasBinaryBiproduct X Y] :
    BicartesianSq biprod.fst biprod.snd (0 : X ⟶ 0) (0 : Y ⟶ 0) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X Y]
Goal: CategoryTheory.BicartesianSq CategoryTheory.Limits.biprod.fst CategoryTheory.Limits.biprod.snd 0 0
-- CategoryTheory.BicartesianSq.of_has_biproduct₂
@[simp]
theorem of_has_biproduct₂ [HasBinaryBiproduct X Y] :
    BicartesianSq (0 : 0 ⟶ X) (0 : 0 ⟶ Y) biprod.inl biprod.inr 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y : C} [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasBinaryBiproduct X Y]
Goal: CategoryTheory.BicartesianSq 0 0 CategoryTheory.Limits.biprod.inl CategoryTheory.Limits.biprod.inr
-- CategoryTheory.Functor.map_isPullback
theorem Functor.map_isPullback [PreservesLimit (cospan h i) F] (s : IsPullback f g h i) :
    IsPullback (F.map f) (F.map g) (F.map h) (F.map i) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : C ⥤ D) {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan h i) F] (s : CategoryTheory.IsPullback f g h i)
Goal: CategoryTheory.IsPullback (F.map f) (F.map g) (F.map h) (F.map i)
-- CategoryTheory.Functor.map_isPushout
theorem Functor.map_isPushout [PreservesColimit (span f g) F] (s : IsPushout f g h i) :
    IsPushout (F.map f) (F.map g) (F.map h) (F.map i) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : C ⥤ D) {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.span f g) F] (s : CategoryTheory.IsPushout f g h i)
Goal: CategoryTheory.IsPushout (F.map f) (F.map g) (F.map h) (F.map i)
-- CategoryTheory.IsPullback.of_map
theorem IsPullback.of_map [ReflectsLimit (cospan h i) F] (e : f ≫ h = g ≫ i)
    (H : IsPullback (F.map f) (F.map g) (F.map h) (F.map i)) : IsPullback f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : C ⥤ D) {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [CategoryTheory.Limits.ReflectsLimit (CategoryTheory.Limits.cospan h i) F] (e : f ≫ h = g ≫ i) (H : CategoryTheory.IsPullback (F.map f) (F.map g) (F.map h) (F.map i))
Goal: CategoryTheory.IsPullback f g h i
-- CategoryTheory.IsPullback.of_map_of_faithful
theorem IsPullback.of_map_of_faithful [ReflectsLimit (cospan h i) F] [F.Faithful]
    (H : IsPullback (F.map f) (F.map g) (F.map h) (F.map i)) : IsPullback f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : C ⥤ D) {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [CategoryTheory.Limits.ReflectsLimit (CategoryTheory.Limits.cospan h i) F] [F.Faithful] (H : CategoryTheory.IsPullback (F.map f) (F.map g) (F.map h) (F.map i))
Goal: CategoryTheory.IsPullback f g h i
-- CategoryTheory.IsPullback.map_iff
theorem IsPullback.map_iff {D : Type*} [Category D] (F : C ⥤ D) [PreservesLimit (cospan h i) F]
    [ReflectsLimit (cospan h i) F] (e : f ≫ h = g ≫ i) :
    IsPullback (F.map f) (F.map g) (F.map h) (F.map i) ↔ IsPullback f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} {D : Type u_1} [CategoryTheory.Category.{u_2, u_1} D] (F : C ⥤ D) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan h i) F] [CategoryTheory.Limits.ReflectsLimit (CategoryTheory.Limits.cospan h i) F] (e : f ≫ h = g ≫ i)
Goal: CategoryTheory.IsPullback (F.map f) (F.map g) (F.map h) (F.map i) ↔ CategoryTheory.IsPullback f g h i
-- CategoryTheory.IsPushout.of_map
theorem IsPushout.of_map [ReflectsColimit (span f g) F] (e : f ≫ h = g ≫ i)
    (H : IsPushout (F.map f) (F.map g) (F.map h) (F.map i)) : IsPushout f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : C ⥤ D) {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [CategoryTheory.Limits.ReflectsColimit (CategoryTheory.Limits.span f g) F] (e : f ≫ h = g ≫ i) (H : CategoryTheory.IsPushout (F.map f) (F.map g) (F.map h) (F.map i))
Goal: CategoryTheory.IsPushout f g h i
-- CategoryTheory.IsPushout.of_map_of_faithful
theorem IsPushout.of_map_of_faithful [ReflectsColimit (span f g) F] [F.Faithful]
    (H : IsPushout (F.map f) (F.map g) (F.map h) (F.map i)) : IsPushout f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : C ⥤ D) {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} [CategoryTheory.Limits.ReflectsColimit (CategoryTheory.Limits.span f g) F] [F.Faithful] (H : CategoryTheory.IsPushout (F.map f) (F.map g) (F.map h) (F.map i))
Goal: CategoryTheory.IsPushout f g h i
-- CategoryTheory.IsPushout.map_iff
theorem IsPushout.map_iff {D : Type*} [Category D] (F : C ⥤ D) [PreservesColimit (span f g) F]
    [ReflectsColimit (span f g) F] (e : f ≫ h = g ≫ i) :
    IsPushout (F.map f) (F.map g) (F.map h) (F.map i) ↔ IsPushout f g h i 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {W X Y Z : C} {f : W ⟶ X} {g : W ⟶ Y} {h : X ⟶ Z} {i : Y ⟶ Z} {D : Type u_1} [CategoryTheory.Category.{u_2, u_1} D] (F : C ⥤ D) [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.span f g) F] [CategoryTheory.Limits.ReflectsColimit (CategoryTheory.Limits.span f g) F] (e : f ≫ h = g ≫ i)
Goal: CategoryTheory.IsPushout (F.map f) (F.map g) (F.map h) (F.map i) ↔ CategoryTheory.IsPushout f g h i
-- CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_fst
@[reassoc (attr := simp)]
theorem pullbackRightPullbackFstIso_hom_fst :
    (pullbackRightPullbackFstIso f g f').hom ≫ pullback.fst _ _ = pullback.fst _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] [CategoryTheory.Limits.HasPullback (f' ≫ f) g]
Goal: (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').hom ≫ CategoryTheory.Limits.pullback.fst (f' ≫ f) g =
  CategoryTheory.Limits.pullback.fst f' (CategoryTheory.Limits.pullback.fst f g)
-- CategoryTheory.Limits.pullbackRightPullbackFstIso_hom_snd
@[reassoc (attr := simp)]
theorem pullbackRightPullbackFstIso_hom_snd :
    (pullbackRightPullbackFstIso f g f').hom ≫ pullback.snd _ _ =
      pullback.snd _ _ ≫ pullback.snd _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] [CategoryTheory.Limits.HasPullback (f' ≫ f) g]
Goal: (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').hom ≫ CategoryTheory.Limits.pullback.snd (f' ≫ f) g =
  CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g) ≫
    CategoryTheory.Limits.pullback.snd f g
-- CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_fst
@[reassoc (attr := simp)]
theorem pullbackRightPullbackFstIso_inv_fst :
    (pullbackRightPullbackFstIso f g f').inv ≫ pullback.fst _ _ = pullback.fst _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] [CategoryTheory.Limits.HasPullback (f' ≫ f) g]
Goal: (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv ≫
    CategoryTheory.Limits.pullback.fst f' (CategoryTheory.Limits.pullback.fst f g) =
  CategoryTheory.Limits.pullback.fst (f' ≫ f) g
-- CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_snd
@[reassoc (attr := simp)]
theorem pullbackRightPullbackFstIso_inv_snd_snd :
    (pullbackRightPullbackFstIso f g f').inv ≫ pullback.snd _ _ ≫ pullback.snd _ _ =
      pullback.snd _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] [CategoryTheory.Limits.HasPullback (f' ≫ f) g]
Goal: (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv ≫
    CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g) ≫
      CategoryTheory.Limits.pullback.snd f g =
  CategoryTheory.Limits.pullback.snd (f' ≫ f) g
-- CategoryTheory.Limits.pullbackRightPullbackFstIso_inv_snd_fst
@[reassoc (attr := simp)]
theorem pullbackRightPullbackFstIso_inv_snd_fst :
    (pullbackRightPullbackFstIso f g f').inv ≫ pullback.snd _ _ ≫ pullback.fst _ _ =
      pullback.fst _ _ ≫ f' 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) (f' : W ⟶ X) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasPullback f' (CategoryTheory.Limits.pullback.fst f g)] [CategoryTheory.Limits.HasPullback (f' ≫ f) g]
Goal: (CategoryTheory.Limits.pullbackRightPullbackFstIso f g f').inv ≫
    CategoryTheory.Limits.pullback.snd f' (CategoryTheory.Limits.pullback.fst f g) ≫
      CategoryTheory.Limits.pullback.fst f g =
  CategoryTheory.Limits.pullback.fst (f' ≫ f) g ≫ f'
-- CategoryTheory.Limits.inl_pushoutLeftPushoutInrIso_inv
@[reassoc (attr := simp)]
theorem inl_pushoutLeftPushoutInrIso_inv :
    pushout.inl _ _ ≫ (pushoutLeftPushoutInrIso f g g').inv = pushout.inl _ _ ≫ pushout.inl _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) (g' : Z ⟶ W) [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout (CategoryTheory.Limits.pushout.inr f g) g'] [CategoryTheory.Limits.HasPushout f (g ≫ g')]
Goal: CategoryTheory.Limits.pushout.inl f (g ≫ g') ≫ (CategoryTheory.Limits.pushoutLeftPushoutInrIso f g g').inv =
  CategoryTheory.Limits.pushout.inl f g ≫ CategoryTheory.Limits.pushout.inl (CategoryTheory.Limits.pushout.inr f g) g'
-- CategoryTheory.Limits.inr_pushoutLeftPushoutInrIso_hom
@[reassoc (attr := simp)]
theorem inr_pushoutLeftPushoutInrIso_hom :
    pushout.inr _ _ ≫ (pushoutLeftPushoutInrIso f g g').hom = pushout.inr _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) (g' : Z ⟶ W) [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout (CategoryTheory.Limits.pushout.inr f g) g'] [CategoryTheory.Limits.HasPushout f (g ≫ g')]
Goal: CategoryTheory.Limits.pushout.inr (CategoryTheory.Limits.pushout.inr f g) g' ≫
    (CategoryTheory.Limits.pushoutLeftPushoutInrIso f g g').hom =
  CategoryTheory.Limits.pushout.inr f (g ≫ g')
-- CategoryTheory.Limits.inr_pushoutLeftPushoutInrIso_inv
@[reassoc (attr := simp)]
theorem inr_pushoutLeftPushoutInrIso_inv :
    pushout.inr _ _ ≫ (pushoutLeftPushoutInrIso f g g').inv = pushout.inr _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) (g' : Z ⟶ W) [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout (CategoryTheory.Limits.pushout.inr f g) g'] [CategoryTheory.Limits.HasPushout f (g ≫ g')]
Goal: CategoryTheory.Limits.pushout.inr f (g ≫ g') ≫ (CategoryTheory.Limits.pushoutLeftPushoutInrIso f g g').inv =
  CategoryTheory.Limits.pushout.inr (CategoryTheory.Limits.pushout.inr f g) g'
-- CategoryTheory.Limits.inl_inl_pushoutLeftPushoutInrIso_hom
@[reassoc (attr := simp)]
theorem inl_inl_pushoutLeftPushoutInrIso_hom :
    pushout.inl _ _ ≫ pushout.inl _ _ ≫ (pushoutLeftPushoutInrIso f g g').hom =
      pushout.inl _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) (g' : Z ⟶ W) [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout (CategoryTheory.Limits.pushout.inr f g) g'] [CategoryTheory.Limits.HasPushout f (g ≫ g')]
Goal: CategoryTheory.Limits.pushout.inl f g ≫
    CategoryTheory.Limits.pushout.inl (CategoryTheory.Limits.pushout.inr f g) g' ≫
      (CategoryTheory.Limits.pushoutLeftPushoutInrIso f g g').hom =
  CategoryTheory.Limits.pushout.inl f (g ≫ g')
-- CategoryTheory.Limits.inr_inl_pushoutLeftPushoutInrIso_hom
@[reassoc (attr := simp)]
theorem inr_inl_pushoutLeftPushoutInrIso_hom :
    pushout.inr _ _ ≫ pushout.inl _ _ ≫ (pushoutLeftPushoutInrIso f g g').hom =
      g' ≫ pushout.inr _ _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} (f : X ⟶ Y) (g : X ⟶ Z) (g' : Z ⟶ W) [CategoryTheory.Limits.HasPushout f g] [CategoryTheory.Limits.HasPushout (CategoryTheory.Limits.pushout.inr f g) g'] [CategoryTheory.Limits.HasPushout f (g ≫ g')]
Goal: CategoryTheory.Limits.pushout.inr f g ≫
    CategoryTheory.Limits.pushout.inl (CategoryTheory.Limits.pushout.inr f g) g' ≫
      (CategoryTheory.Limits.pushoutLeftPushoutInrIso f g g').hom =
  g' ≫ CategoryTheory.Limits.pushout.inr f (g ≫ g')
-- CategoryTheory.preserves_lift_mapCone
@[simp]
theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
    (PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {J : Type w} [CategoryTheory.Category.{w', w} J] (F : CategoryTheory.Functor J C) [CategoryTheory.Limits.PreservesLimit F G] (c₁ c₂ : CategoryTheory.Limits.Cone F) (t : CategoryTheory.Limits.IsLimit c₁)
Goal: (CategoryTheory.Limits.PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂)
-- CategoryTheory.preservesLimitsIso_hom_π
@[reassoc (attr := simp)]
theorem preservesLimitsIso_hom_π (j) :
    (preservesLimitIso G F).hom ≫ limit.π _ j = G.map (limit.π F j) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (G : CategoryTheory.Functor C D) {J : Type w} [CategoryTheory.Category.{w', w} J] (F : CategoryTheory.Functor J C) [CategoryTheory.Limits.PreservesLimit F G] [CategoryTheory.Limits.HasLimit F] (j : J)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.preservesLimitIso G F).hom
    (CategoryTheory.Limits.limit.π (F.comp G) j) =
  G.map (CategoryTheory.Limits.limit.π F j)