File: Mathlib/CategoryTheory/Limits/Constructions/Equalizers.lean

full_name: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.constructEqualizer
code: /-- Define the equalizing object -/
abbrev constructEqualizer (F : WalkingParallelPair ⥤ C) : C 
goal: C

full_name: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.pullbackFst
code: /-- Define the equalizing morphism -/
abbrev pullbackFst (F : WalkingParallelPair ⥤ C) :
    constructEqualizer F ⟶ F.obj WalkingParallelPair.zero 
goal: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.constructEqualizer F ⟶
  F.obj CategoryTheory.Limits.WalkingParallelPair.zero

full_name: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.pullbackFst_eq_pullback_snd
code: theorem pullbackFst_eq_pullback_snd (F : WalkingParallelPair ⥤ C) :
    pullbackFst F = pullback.snd _ _ 
goal: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.pullbackFst F =
  CategoryTheory.Limits.pullback.snd
    (CategoryTheory.Limits.prod.lift (𝟙 (F.obj CategoryTheory.Limits.WalkingParallelPair.zero))
      (F.map CategoryTheory.Limits.WalkingParallelPairHom.left))
    (CategoryTheory.Limits.prod.lift (𝟙 (F.obj CategoryTheory.Limits.WalkingParallelPair.zero))
      (F.map CategoryTheory.Limits.WalkingParallelPairHom.right))

full_name: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.equalizerCone
code: /-- Define the equalizing cone -/
abbrev equalizerCone (F : WalkingParallelPair ⥤ C) : Cone F 
goal: CategoryTheory.Limits.Cone F

full_name: CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.equalizerConeIsLimit
code: /-- Show the equalizing cone is a limit -/
def equalizerConeIsLimit (F : WalkingParallelPair ⥤ C) : IsLimit (equalizerCone F) 
goal: CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.HasEqualizersOfHasPullbacksAndBinaryProducts.equalizerCone F)

full_name: CategoryTheory.Limits.hasEqualizers_of_hasPullbacks_and_binary_products
code: /-- Any category with pullbacks and binary products, has equalizers. -/
theorem hasEqualizers_of_hasPullbacks_and_binary_products [HasBinaryProducts C] [HasPullbacks C] :
    HasEqualizers C 
goal: CategoryTheory.Limits.HasEqualizers C

full_name: CategoryTheory.Limits.preservesEqualizersOfPreservesPullbacksAndBinaryProducts
code: /-- A functor that preserves pullbacks and binary products also presrves equalizers. -/
def preservesEqualizersOfPreservesPullbacksAndBinaryProducts [HasBinaryProducts C] [HasPullbacks C]
    [PreservesLimitsOfShape (Discrete WalkingPair) G] [PreservesLimitsOfShape WalkingCospan G] :
    PreservesLimitsOfShape WalkingParallelPair G 
goal: CategoryTheory.Limits.PreservesLimitsOfShape CategoryTheory.Limits.WalkingParallelPair G

full_name: CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.constructCoequalizer
code: /-- Define the equalizing object -/
abbrev constructCoequalizer (F : WalkingParallelPair ⥤ C) : C 
goal: C

full_name: CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.pushoutInl
code: /-- Define the equalizing morphism -/
abbrev pushoutInl (F : WalkingParallelPair ⥤ C) :
    F.obj WalkingParallelPair.one ⟶ constructCoequalizer F 
goal: F.obj CategoryTheory.Limits.WalkingParallelPair.one ⟶
  CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.constructCoequalizer F

full_name: CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.pushoutInl_eq_pushout_inr
code: theorem pushoutInl_eq_pushout_inr (F : WalkingParallelPair ⥤ C) :
    pushoutInl F = pushout.inr _ _ 
goal: CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.pushoutInl F =
  CategoryTheory.Limits.pushout.inr
    (CategoryTheory.Limits.coprod.desc (𝟙 (F.obj CategoryTheory.Limits.WalkingParallelPair.one))
      (F.map CategoryTheory.Limits.WalkingParallelPairHom.left))
    (CategoryTheory.Limits.coprod.desc (𝟙 (F.obj CategoryTheory.Limits.WalkingParallelPair.one))
      (F.map CategoryTheory.Limits.WalkingParallelPairHom.right))

full_name: CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.coequalizerCocone
code: /-- Define the equalizing cocone -/
abbrev coequalizerCocone (F : WalkingParallelPair ⥤ C) : Cocone F 
goal: CategoryTheory.Limits.Cocone F

full_name: CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.coequalizerCoconeIsColimit
code: /-- Show the equalizing cocone is a colimit -/
def coequalizerCoconeIsColimit (F : WalkingParallelPair ⥤ C) : IsColimit (coequalizerCocone F) 
goal: CategoryTheory.Limits.IsColimit
  (CategoryTheory.Limits.HasCoequalizersOfHasPushoutsAndBinaryCoproducts.coequalizerCocone F)

full_name: CategoryTheory.Limits.hasCoequalizers_of_hasPushouts_and_binary_coproducts
code: /-- Any category with pullbacks and binary products, has equalizers. -/
theorem hasCoequalizers_of_hasPushouts_and_binary_coproducts [HasBinaryCoproducts C]
    [HasPushouts C] : HasCoequalizers C 
goal: CategoryTheory.Limits.HasCoequalizers C

full_name: CategoryTheory.Limits.preservesCoequalizersOfPreservesPushoutsAndBinaryCoproducts
code: /-- A functor that preserves pushouts and binary coproducts also presrves coequalizers. -/
def preservesCoequalizersOfPreservesPushoutsAndBinaryCoproducts [HasBinaryCoproducts C]
    [HasPushouts C] [PreservesColimitsOfShape (Discrete WalkingPair) G]
    [PreservesColimitsOfShape WalkingSpan G] : PreservesColimitsOfShape WalkingParallelPair G 
goal: CategoryTheory.Limits.PreservesColimitsOfShape CategoryTheory.Limits.WalkingParallelPair G