Loogle!
Result
Found 1118 declarations mentioning CategoryTheory.Limits.parallelPair. Of these, only the first 200 are shown.
- CategoryTheory.Limits.parallelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C - CategoryTheory.Limits.hasCoequalizers_of_hasColimit_parallelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] [∀ {X Y : C} {f g : X ⟶ Y}, CategoryTheory.Limits.HasColimit (CategoryTheory.Limits.parallelPair f g)] : CategoryTheory.Limits.HasCoequalizers C - CategoryTheory.Limits.hasEqualizers_of_hasLimit_parallelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] [∀ {X Y : C} {f g : X ⟶ Y}, CategoryTheory.Limits.HasLimit (CategoryTheory.Limits.parallelPair f g)] : CategoryTheory.Limits.HasEqualizers C - CategoryTheory.Limits.parallelPair_obj_one 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) : (CategoryTheory.Limits.parallelPair f g).obj CategoryTheory.Limits.WalkingParallelPair.one = Y - CategoryTheory.Limits.parallelPair_obj_zero 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) : (CategoryTheory.Limits.parallelPair f g).obj CategoryTheory.Limits.WalkingParallelPair.zero = X - CategoryTheory.Limits.Cofork.π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) : Y ⟶ t.pt - CategoryTheory.Limits.Fork.ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) : t.pt ⟶ X - CategoryTheory.Limits.diagramIsoParallelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C) : F ≅ CategoryTheory.Limits.parallelPair (F.map CategoryTheory.Limits.WalkingParallelPairHom.left) (F.map CategoryTheory.Limits.WalkingParallelPairHom.right) - CategoryTheory.Limits.isColimitIdCofork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (h : f = g) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.idCofork h) - CategoryTheory.Limits.isLimitIdFork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (h : f = g) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.idFork h) - CategoryTheory.Limits.isIso_colimit_cocone_parallelPair_of_self 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f : X ⟶ Y} {c : CategoryTheory.Limits.Cofork f f} (h : CategoryTheory.Limits.IsColimit c) : CategoryTheory.IsIso c.π - CategoryTheory.Limits.isIso_limit_cone_parallelPair_of_self 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f : X ⟶ Y} {c : CategoryTheory.Limits.Fork f f} (h : CategoryTheory.Limits.IsLimit c) : CategoryTheory.IsIso c.ι - CategoryTheory.Limits.isSplitEpiCoequalizes 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.IsSplitEpi f] : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.coconeOfIsSplitEpi f) - CategoryTheory.Limits.isSplitMonoEqualizes 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.IsSplitMono f] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.coneOfIsSplitMono f) - CategoryTheory.Limits.parallelPair_functor_obj 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C} (j : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.parallelPair (F.map CategoryTheory.Limits.WalkingParallelPairHom.left) (F.map CategoryTheory.Limits.WalkingParallelPairHom.right)).obj j = F.obj j - CategoryTheory.Limits.coconeOfIsSplitEpi_pt 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f : X ⟶ Y) [CategoryTheory.IsSplitEpi f] : (CategoryTheory.Limits.coconeOfIsSplitEpi f).pt = Y - CategoryTheory.Limits.coneOfIsSplitMono_pt 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f : X ⟶ Y) [CategoryTheory.IsSplitMono f] : (CategoryTheory.Limits.coneOfIsSplitMono f).pt = X - CategoryTheory.Limits.eq_of_epi_fork_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) [CategoryTheory.Epi t.ι] : f = g - CategoryTheory.Limits.eq_of_mono_cofork_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) [CategoryTheory.Mono t.π] : f = g - CategoryTheory.Limits.epi_of_isColimit_cofork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {c : CategoryTheory.Limits.Cofork f g} (i : CategoryTheory.Limits.IsColimit c) : CategoryTheory.Epi c.π - CategoryTheory.Limits.mono_of_isLimit_fork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {c : CategoryTheory.Limits.Fork f g} (i : CategoryTheory.Limits.IsLimit c) : CategoryTheory.Mono c.ι - CategoryTheory.Limits.Cofork.IsColimit.epi 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) : CategoryTheory.Epi s.π - CategoryTheory.Limits.Fork.IsLimit.mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) : CategoryTheory.Mono s.ι - CategoryTheory.Limits.coequalizerIsCoequalizer 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) [CategoryTheory.Limits.HasCoequalizer f g] : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ (CategoryTheory.Limits.coequalizer.π f g) ⋯) - CategoryTheory.Limits.equalizerIsEqualizer 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) [CategoryTheory.Limits.HasEqualizer f g] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι (CategoryTheory.Limits.equalizer.ι f g) ⋯) - CategoryTheory.Limits.parallelPair_map_left 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) : (CategoryTheory.Limits.parallelPair f g).map CategoryTheory.Limits.WalkingParallelPairHom.left = f - CategoryTheory.Limits.parallelPair_map_right 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) : (CategoryTheory.Limits.parallelPair f g).map CategoryTheory.Limits.WalkingParallelPairHom.right = g - CategoryTheory.Limits.isIso_colimit_cocone_parallelPair_of_eq 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (h₀ : f = g) {c : CategoryTheory.Limits.Cofork f g} (h : CategoryTheory.Limits.IsColimit c) : CategoryTheory.IsIso c.π - CategoryTheory.Limits.isIso_limit_cone_parallelPair_of_eq 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (h₀ : f = g) {c : CategoryTheory.Limits.Fork f g} (h : CategoryTheory.Limits.IsLimit c) : CategoryTheory.IsIso c.ι - CategoryTheory.Limits.coequalizer.cofork_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) [CategoryTheory.Limits.HasCoequalizer f g] : (CategoryTheory.Limits.coequalizer.cofork f g).π = CategoryTheory.Limits.coequalizer.π f g - CategoryTheory.Limits.equalizer.fork_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) [CategoryTheory.Limits.HasEqualizer f g] : (CategoryTheory.Limits.equalizer.fork f g).ι = CategoryTheory.Limits.equalizer.ι f g - CategoryTheory.Limits.Cofork.isoCoforkOfπ 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (c : CategoryTheory.Limits.Cofork f g) : c ≅ CategoryTheory.Limits.Cofork.ofπ c.π ⋯ - CategoryTheory.Limits.Fork.isoForkOfι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (c : CategoryTheory.Limits.Fork f g) : c ≅ CategoryTheory.Limits.Fork.ofι c.ι ⋯ - CategoryTheory.Limits.Cofork.ofπ_pt 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} (π : Y ⟶ P) (w : CategoryTheory.CategoryStruct.comp f π = CategoryTheory.CategoryStruct.comp g π) : (CategoryTheory.Limits.Cofork.ofπ π w).pt = P - CategoryTheory.Limits.Fork.ofι_pt 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} (ι : P ⟶ X) (w : CategoryTheory.CategoryStruct.comp ι f = CategoryTheory.CategoryStruct.comp ι g) : (CategoryTheory.Limits.Fork.ofι ι w).pt = P - CategoryTheory.Limits.parallelPair.eqOfHomEq 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g f' g' : X ⟶ Y} (hf : f = f') (hg : g = g') : CategoryTheory.Limits.parallelPair f g ≅ CategoryTheory.Limits.parallelPair f' g' - CategoryTheory.Limits.precompFork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {Z : C} (h : Z ⟶ X) (s : CategoryTheory.Limits.Fork f g) (c : CategoryTheory.Limits.PullbackCone s.ι h) : CategoryTheory.Limits.Fork (CategoryTheory.CategoryStruct.comp h f) (CategoryTheory.CategoryStruct.comp h g) - CategoryTheory.Limits.isIso_limit_cocone_parallelPair_of_epi 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {c : CategoryTheory.Limits.Cofork f g} (h : CategoryTheory.Limits.IsColimit c) [CategoryTheory.Mono c.π] : CategoryTheory.IsIso c.π - CategoryTheory.Limits.isIso_limit_cone_parallelPair_of_epi 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {c : CategoryTheory.Limits.Fork f g} (h : CategoryTheory.Limits.IsLimit c) [CategoryTheory.Epi c.ι] : CategoryTheory.IsIso c.ι - CategoryTheory.Limits.splitEpiOfIdempotentOfIsColimitCofork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] {X : C} {f : X ⟶ X} (hf : CategoryTheory.CategoryStruct.comp f f = f) {c : CategoryTheory.Limits.Cofork (CategoryTheory.CategoryStruct.id X) f} (i : CategoryTheory.Limits.IsColimit c) : CategoryTheory.SplitEpi c.π - CategoryTheory.Limits.splitMonoOfIdempotentOfIsLimitFork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] {X : C} {f : X ⟶ X} (hf : CategoryTheory.CategoryStruct.comp f f = f) {c : CategoryTheory.Limits.Fork (CategoryTheory.CategoryStruct.id X) f} (i : CategoryTheory.Limits.IsLimit c) : CategoryTheory.SplitMono c.ι - CategoryTheory.Limits.coconeOfIsSplitEpi_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f : X ⟶ Y) [CategoryTheory.IsSplitEpi f] : (CategoryTheory.Limits.coconeOfIsSplitEpi f).π = f - CategoryTheory.Limits.coneOfIsSplitMono_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f : X ⟶ Y) [CategoryTheory.IsSplitMono f] : (CategoryTheory.Limits.coneOfIsSplitMono f).ι = f - CategoryTheory.Limits.Cofork.IsColimit.desc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {W : C} (k : Y ⟶ W) (h : CategoryTheory.CategoryStruct.comp f k = CategoryTheory.CategoryStruct.comp g k) : s.pt ⟶ W - CategoryTheory.Limits.Fork.IsLimit.lift 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = CategoryTheory.CategoryStruct.comp k g) : W ⟶ s.pt - CategoryTheory.Limits.Cofork.condition 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) : CategoryTheory.CategoryStruct.comp f t.π = CategoryTheory.CategoryStruct.comp g t.π - CategoryTheory.Limits.Fork.condition 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) : CategoryTheory.CategoryStruct.comp t.ι f = CategoryTheory.CategoryStruct.comp t.ι g - CategoryTheory.Limits.Cofork.π_ofπ 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} (π : Y ⟶ P) (w : CategoryTheory.CategoryStruct.comp f π = CategoryTheory.CategoryStruct.comp g π) : (CategoryTheory.Limits.Cofork.ofπ π w).π = π - CategoryTheory.Limits.Fork.ι_ofι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} (ι : P ⟶ X) (w : CategoryTheory.CategoryStruct.comp ι f = CategoryTheory.CategoryStruct.comp ι g) : (CategoryTheory.Limits.Fork.ofι ι w).ι = ι - CategoryTheory.Limits.Cofork.IsColimit.homIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Cofork f g} (ht : CategoryTheory.Limits.IsColimit t) (Z : C) : (t.pt ⟶ Z) ≃ { h // CategoryTheory.CategoryStruct.comp f h = CategoryTheory.CategoryStruct.comp g h } - CategoryTheory.Limits.Fork.IsLimit.homIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Fork f g} (ht : CategoryTheory.Limits.IsLimit t) (Z : C) : (Z ⟶ t.pt) ≃ { h // CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp h g } - CategoryTheory.Limits.Cofork.IsColimit.π_desc' 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {W : C} (k : Y ⟶ W) (h : CategoryTheory.CategoryStruct.comp f k = CategoryTheory.CategoryStruct.comp g k) : CategoryTheory.CategoryStruct.comp s.π (CategoryTheory.Limits.Cofork.IsColimit.desc hs k h) = k - CategoryTheory.Limits.Fork.IsLimit.lift_ι' 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = CategoryTheory.CategoryStruct.comp k g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Fork.IsLimit.lift hs k h) s.ι = k - CategoryTheory.Limits.Cofork.IsColimit.π_desc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) : CategoryTheory.CategoryStruct.comp s.π (hs.desc t) = t.π - CategoryTheory.Limits.Fork.IsLimit.lift_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) : CategoryTheory.CategoryStruct.comp (hs.lift t) s.ι = t.ι - CategoryTheory.Limits.Cofork.condition_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) {Z : C} (h : t.pt ⟶ Z) : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp t.π h) = CategoryTheory.CategoryStruct.comp g (CategoryTheory.CategoryStruct.comp t.π h) - CategoryTheory.Limits.Fork.condition_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) {Z : C} (h : Y ⟶ Z) : CategoryTheory.CategoryStruct.comp t.ι (CategoryTheory.CategoryStruct.comp f h) = CategoryTheory.CategoryStruct.comp t.ι (CategoryTheory.CategoryStruct.comp g h) - CategoryTheory.Limits.hasEqualizer_precomp_of_equalizer 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {Z : C} (h : Z ⟶ X) {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {c : CategoryTheory.Limits.PullbackCone s.ι h} (hc : CategoryTheory.Limits.IsLimit c) : CategoryTheory.Limits.HasEqualizer (CategoryTheory.CategoryStruct.comp h f) (CategoryTheory.CategoryStruct.comp h g) - CategoryTheory.Limits.Cofork.app_one_eq_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) : t.ι.app CategoryTheory.Limits.WalkingParallelPair.one = t.π - CategoryTheory.Limits.Fork.app_zero_eq_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) : t.π.app CategoryTheory.Limits.WalkingParallelPair.zero = t.ι - CategoryTheory.Limits.CoforkOfπ.ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} {π π' : Y ⟶ P} (w : CategoryTheory.CategoryStruct.comp f π = CategoryTheory.CategoryStruct.comp g π) (w' : CategoryTheory.CategoryStruct.comp f π' = CategoryTheory.CategoryStruct.comp g π') (h : π = π') : CategoryTheory.Limits.Cofork.ofπ π w ≅ CategoryTheory.Limits.Cofork.ofπ π' w' - CategoryTheory.Limits.ForkOfι.ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} {ι ι' : P ⟶ X} (w : CategoryTheory.CategoryStruct.comp ι f = CategoryTheory.CategoryStruct.comp ι g) (w' : CategoryTheory.CategoryStruct.comp ι' f = CategoryTheory.CategoryStruct.comp ι' g) (h : ι = ι') : CategoryTheory.Limits.Fork.ofι ι w ≅ CategoryTheory.Limits.Fork.ofι ι' w' - CategoryTheory.Limits.isLimitPrecompFork 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {Z : C} (h : Z ⟶ X) {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {c : CategoryTheory.Limits.PullbackCone s.ι h} (hc : CategoryTheory.Limits.IsLimit c) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.precompFork h s c) - CategoryTheory.Limits.parallelPairHom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {X' Y' : C} (f g : X ⟶ Y) (f' g' : X' ⟶ Y') (p : X ⟶ X') (q : Y ⟶ Y') (wf : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') (wg : CategoryTheory.CategoryStruct.comp g q = CategoryTheory.CategoryStruct.comp p g') : CategoryTheory.Limits.parallelPair f g ⟶ CategoryTheory.Limits.parallelPair f' g' - CategoryTheory.Limits.parallelPairIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {X' Y' : C} (f g : X ⟶ Y) (f' g' : X' ⟶ Y') (p : X ≅ X') (q : Y ≅ Y') (wf : CategoryTheory.CategoryStruct.comp f q.hom = CategoryTheory.CategoryStruct.comp p.hom f') (wg : CategoryTheory.CategoryStruct.comp g q.hom = CategoryTheory.CategoryStruct.comp p.hom g') : CategoryTheory.Limits.parallelPair f g ≅ CategoryTheory.Limits.parallelPair f' g' - CategoryTheory.Limits.Fork.hom_comp_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (f✝ : s ⟶ t) : CategoryTheory.CategoryStruct.comp f✝.hom t.ι = s.ι - CategoryTheory.Limits.Fork.π_comp_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (f✝ : s ⟶ t) : CategoryTheory.CategoryStruct.comp s.π f✝.hom = t.π - CategoryTheory.Limits.Cofork.IsColimit.desc' 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {W : C} (k : Y ⟶ W) (h : CategoryTheory.CategoryStruct.comp f k = CategoryTheory.CategoryStruct.comp g k) : { l // CategoryTheory.CategoryStruct.comp s.π l = k } - CategoryTheory.Limits.Cofork.IsColimit.existsUnique 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {W : C} (k : Y ⟶ W) (h : CategoryTheory.CategoryStruct.comp f k = CategoryTheory.CategoryStruct.comp g k) : ∃! d, CategoryTheory.CategoryStruct.comp s.π d = k - CategoryTheory.Limits.Fork.IsLimit.existsUnique 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = CategoryTheory.CategoryStruct.comp k g) : ∃! l, CategoryTheory.CategoryStruct.comp l s.ι = k - CategoryTheory.Limits.Fork.IsLimit.lift' 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = CategoryTheory.CategoryStruct.comp k g) : { l // CategoryTheory.CategoryStruct.comp l s.ι = k } - CategoryTheory.Limits.Cofork.app_zero_eq_comp_π_left 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Cofork f g) : s.ι.app CategoryTheory.Limits.WalkingParallelPair.zero = CategoryTheory.CategoryStruct.comp f s.π - CategoryTheory.Limits.Cofork.app_zero_eq_comp_π_right 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Cofork f g) : s.ι.app CategoryTheory.Limits.WalkingParallelPair.zero = CategoryTheory.CategoryStruct.comp g s.π - CategoryTheory.Limits.Fork.app_one_eq_ι_comp_left 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Fork f g) : s.π.app CategoryTheory.Limits.WalkingParallelPair.one = CategoryTheory.CategoryStruct.comp s.ι f - CategoryTheory.Limits.Fork.app_one_eq_ι_comp_right 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Fork f g) : s.π.app CategoryTheory.Limits.WalkingParallelPair.one = CategoryTheory.CategoryStruct.comp s.ι g - CategoryTheory.Limits.coequalizer.cofork_ι_app_one 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) [CategoryTheory.Limits.HasCoequalizer f g] : (CategoryTheory.Limits.coequalizer.cofork f g).ι.app CategoryTheory.Limits.WalkingParallelPair.one = CategoryTheory.Limits.coequalizer.π f g - CategoryTheory.Limits.equalizer.fork_π_app_zero 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f g : X ⟶ Y) [CategoryTheory.Limits.HasEqualizer f g] : (CategoryTheory.Limits.equalizer.fork f g).π.app CategoryTheory.Limits.WalkingParallelPair.zero = CategoryTheory.Limits.equalizer.ι f g - CategoryTheory.Limits.Cofork.IsColimit.π_desc'_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {W : C} (k : Y ⟶ W) (h : CategoryTheory.CategoryStruct.comp f k = CategoryTheory.CategoryStruct.comp g k) {Z : C} (h✝ : W ⟶ Z) : CategoryTheory.CategoryStruct.comp s.π (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Cofork.IsColimit.desc hs k h) h✝) = CategoryTheory.CategoryStruct.comp k h✝ - CategoryTheory.Limits.Fork.IsLimit.lift_ι'_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = CategoryTheory.CategoryStruct.comp k g) {Z : C} (h✝ : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Fork.IsLimit.lift hs k h) (CategoryTheory.CategoryStruct.comp s.ι h✝) = CategoryTheory.CategoryStruct.comp k h✝ - CategoryTheory.Limits.Fork.equivOfIsos 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {X' Y' : C} {f' g' : X' ⟶ Y'} (e₀ : X ≅ X') (e₁ : Y ≅ Y') (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) : CategoryTheory.Limits.Fork f g ≌ CategoryTheory.Limits.Fork f' g' - CategoryTheory.Limits.Cofork.IsColimit.hom_ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {W : C} {k l : s.pt ⟶ W} (h : CategoryTheory.CategoryStruct.comp s.π k = CategoryTheory.CategoryStruct.comp s.π l) : k = l - CategoryTheory.Limits.Fork.IsLimit.hom_ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {W : C} {k l : W ⟶ s.pt} (h : CategoryTheory.CategoryStruct.comp k s.ι = CategoryTheory.CategoryStruct.comp l s.ι) : k = l - CategoryTheory.Limits.Cofork.mkHom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (k : s.pt ⟶ t.pt) (w : CategoryTheory.CategoryStruct.comp s.π k = t.π) : s ⟶ t - CategoryTheory.Limits.Fork.mkHom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (k : s.pt ⟶ t.pt) (w : CategoryTheory.CategoryStruct.comp k t.ι = s.ι) : s ⟶ t - CategoryTheory.Limits.splitMonoOfEqualizer 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] {X Y : C} {f : X ⟶ Y} {r : Y ⟶ X} (hr : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp r f) = f) (h : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι f ⋯)) : CategoryTheory.SplitMono f - CategoryTheory.Limits.Cofork.IsColimit.π_desc_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (hs : CategoryTheory.Limits.IsColimit s) {Z : C} (h : t.pt ⟶ Z) : CategoryTheory.CategoryStruct.comp s.π (CategoryTheory.CategoryStruct.comp (hs.desc t) h) = CategoryTheory.CategoryStruct.comp t.π h - CategoryTheory.Limits.Fork.IsLimit.lift_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {Z : C} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (hs.lift t) (CategoryTheory.CategoryStruct.comp s.ι h) = CategoryTheory.CategoryStruct.comp t.ι h - CategoryTheory.Limits.Cofork.IsColimit.ofExistsUnique 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {t : CategoryTheory.Limits.Cofork f g} (hs : ∀ (s : CategoryTheory.Limits.Cofork f g), ∃! d, CategoryTheory.CategoryStruct.comp t.π d = s.π) : CategoryTheory.Limits.IsColimit t - CategoryTheory.Limits.Fork.IsLimit.ofExistsUnique 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {t : CategoryTheory.Limits.Fork f g} (hs : ∀ (s : CategoryTheory.Limits.Fork f g), ∃! l, CategoryTheory.CategoryStruct.comp l t.ι = s.ι) : CategoryTheory.Limits.IsLimit t - CategoryTheory.Limits.Cofork.ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (i : s.pt ≅ t.pt) (w : CategoryTheory.CategoryStruct.comp s.π i.hom = t.π := by cat_disch) : s ≅ t - CategoryTheory.Limits.Fork.ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (i : s.pt ≅ t.pt) (w : CategoryTheory.CategoryStruct.comp i.hom t.ι = s.ι := by cat_disch) : s ≅ t - CategoryTheory.Limits.parallelPairHom_app_one 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {X' Y' : C} (f g : X ⟶ Y) (f' g' : X' ⟶ Y') (p : X ⟶ X') (q : Y ⟶ Y') (wf : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') (wg : CategoryTheory.CategoryStruct.comp g q = CategoryTheory.CategoryStruct.comp p g') : (CategoryTheory.Limits.parallelPairHom f g f' g' p q wf wg).app CategoryTheory.Limits.WalkingParallelPair.one = q - CategoryTheory.Limits.parallelPairHom_app_zero 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {X' Y' : C} (f g : X ⟶ Y) (f' g' : X' ⟶ Y') (p : X ⟶ X') (q : Y ⟶ Y') (wf : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') (wg : CategoryTheory.CategoryStruct.comp g q = CategoryTheory.CategoryStruct.comp p g') : (CategoryTheory.Limits.parallelPairHom f g f' g' p q wf wg).app CategoryTheory.Limits.WalkingParallelPair.zero = p - CategoryTheory.Limits.Cofork.mkHom_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (k : s.pt ⟶ t.pt) (w : CategoryTheory.CategoryStruct.comp s.π k = t.π) : (CategoryTheory.Limits.Cofork.mkHom k w).hom = k - CategoryTheory.Limits.Fork.mkHom_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (k : s.pt ⟶ t.pt) (w : CategoryTheory.CategoryStruct.comp k t.ι = s.ι) : (CategoryTheory.Limits.Fork.mkHom k w).hom = k - CategoryTheory.Limits.splitEpiOfIdempotentOfIsColimitCofork_section_ 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] {X : C} {f : X ⟶ X} (hf : CategoryTheory.CategoryStruct.comp f f = f) {c : CategoryTheory.Limits.Cofork (CategoryTheory.CategoryStruct.id X) f} (i : CategoryTheory.Limits.IsColimit c) : (CategoryTheory.Limits.splitEpiOfIdempotentOfIsColimitCofork C hf i).section_ = i.desc (CategoryTheory.Limits.Cofork.ofπ f ⋯) - CategoryTheory.Limits.splitMonoOfIdempotentOfIsLimitFork_retraction 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] {X : C} {f : X ⟶ X} (hf : CategoryTheory.CategoryStruct.comp f f = f) {c : CategoryTheory.Limits.Fork (CategoryTheory.CategoryStruct.id X) f} (i : CategoryTheory.Limits.IsLimit c) : (CategoryTheory.Limits.splitMonoOfIdempotentOfIsLimitFork C hf i).retraction = i.lift (CategoryTheory.Limits.Fork.ofι f ⋯) - CategoryTheory.Limits.Fork.hom_comp_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (f✝ : s ⟶ t) {Z : C} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp f✝.hom (CategoryTheory.CategoryStruct.comp t.ι h) = CategoryTheory.CategoryStruct.comp s.ι h - CategoryTheory.Limits.Fork.π_comp_hom_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (f✝ : s ⟶ t) {Z : C} (h : t.pt ⟶ Z) : CategoryTheory.CategoryStruct.comp s.π (CategoryTheory.CategoryStruct.comp f✝.hom h) = CategoryTheory.CategoryStruct.comp t.π h - CategoryTheory.Limits.diagramIsoParallelPair_hom_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C) (X : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.diagramIsoParallelPair F).hom.app X = CategoryTheory.eqToHom ⋯ - CategoryTheory.Limits.liftPrecomp 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {Z : C} (h : Z ⟶ X) {s : CategoryTheory.Limits.Fork f g} (hs : CategoryTheory.Limits.IsLimit s) {c : CategoryTheory.Limits.PullbackCone s.ι h} (hc : CategoryTheory.Limits.IsLimit c) (s' : CategoryTheory.Limits.Fork (CategoryTheory.CategoryStruct.comp h f) (CategoryTheory.CategoryStruct.comp h g)) : s'.pt ⟶ (CategoryTheory.Limits.precompFork h s c).pt - CategoryTheory.Limits.parallelPair.eqOfHomEq_hom_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g f' g' : X ⟶ Y} (hf : f = f') (hg : g = g') (X✝ : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.parallelPair.eqOfHomEq hf hg).hom.app X✝ = (CategoryTheory.Limits.WalkingParallelPair.rec (CategoryTheory.Iso.refl X) (CategoryTheory.Iso.refl Y) X✝).hom - CategoryTheory.Limits.parallelPair.eqOfHomEq_inv_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g f' g' : X ⟶ Y} (hf : f = f') (hg : g = g') (X✝ : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.parallelPair.eqOfHomEq hf hg).inv.app X✝ = (CategoryTheory.Limits.WalkingParallelPair.rec (CategoryTheory.Iso.refl X) (CategoryTheory.Iso.refl Y) X✝).inv - CategoryTheory.Limits.Fork.isoForkOfι_hom_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (c : CategoryTheory.Limits.Fork f g) : c.isoForkOfι.hom.hom = CategoryTheory.CategoryStruct.id c.pt - CategoryTheory.Limits.Fork.isoForkOfι_inv_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (c : CategoryTheory.Limits.Fork f g) : c.isoForkOfι.inv.hom = CategoryTheory.CategoryStruct.id c.pt - CategoryTheory.Limits.isCoequalizerEpiComp 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {c : CategoryTheory.Limits.Cofork f g} (i : CategoryTheory.Limits.IsColimit c) {W : C} (h : W ⟶ X) [hm : CategoryTheory.Epi h] : have this := ⋯; CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ c.π this) - CategoryTheory.Limits.isEqualizerCompMono 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {c : CategoryTheory.Limits.Fork f g} (i : CategoryTheory.Limits.IsLimit c) {Z : C} (h : Y ⟶ Z) [hm : CategoryTheory.Mono h] : have this := ⋯; CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι c.ι ⋯) - CategoryTheory.Limits.splitEpiOfCoequalizer 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
(C : Type u) [CategoryTheory.Category.{v, u} C] {X Y : C} {f : X ⟶ Y} {s : Y ⟶ X} (hs : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp s f) = f) (h : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.Cofork.ofπ f ⋯)) : CategoryTheory.SplitEpi f - CategoryTheory.Limits.Cofork.ofπ_ι_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} (π : Y ⟶ P) (w : CategoryTheory.CategoryStruct.comp f π = CategoryTheory.CategoryStruct.comp g π) (X✝ : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.Cofork.ofπ π w).ι.app X✝ = CategoryTheory.Limits.WalkingParallelPair.casesOn X✝ (CategoryTheory.CategoryStruct.comp f π) π - CategoryTheory.Limits.diagramIsoParallelPair_inv_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C) (X : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.diagramIsoParallelPair F).inv.app X = CategoryTheory.eqToHom ⋯ - CategoryTheory.Limits.Cofork.ext_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (i : s.pt ≅ t.pt) (w : CategoryTheory.CategoryStruct.comp s.π i.hom = t.π := by cat_disch) : (CategoryTheory.Limits.Cofork.ext i w).hom = CategoryTheory.Limits.Cofork.mkHom i.hom w - CategoryTheory.Limits.Fork.ext_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (i : s.pt ≅ t.pt) (w : CategoryTheory.CategoryStruct.comp i.hom t.ι = s.ι := by cat_disch) : (CategoryTheory.Limits.Fork.ext i w).hom = CategoryTheory.Limits.Fork.mkHom i.hom w - CategoryTheory.Limits.Cofork.app_zero_eq_comp_π_right_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Cofork f g) {Z : C} (h : ((CategoryTheory.Functor.const CategoryTheory.Limits.WalkingParallelPair).obj s.pt).obj CategoryTheory.Limits.WalkingParallelPair.zero ⟶ Z) : CategoryTheory.CategoryStruct.comp (s.ι.app CategoryTheory.Limits.WalkingParallelPair.zero) h = CategoryTheory.CategoryStruct.comp g (CategoryTheory.CategoryStruct.comp s.π h) - CategoryTheory.Limits.Fork.app_one_eq_ι_comp_right_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Fork f g) {Z : C} (h : (CategoryTheory.Limits.parallelPair f g).obj CategoryTheory.Limits.WalkingParallelPair.one ⟶ Z) : CategoryTheory.CategoryStruct.comp (s.π.app CategoryTheory.Limits.WalkingParallelPair.one) h = CategoryTheory.CategoryStruct.comp s.ι (CategoryTheory.CategoryStruct.comp g h) - CategoryTheory.Limits.Cofork.ext_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Cofork f g} (i : s.pt ≅ t.pt) (w : CategoryTheory.CategoryStruct.comp s.π i.hom = t.π := by cat_disch) : (CategoryTheory.Limits.Cofork.ext i w).inv = CategoryTheory.Limits.Cofork.mkHom i.inv ⋯ - CategoryTheory.Limits.Fork.ext_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {s t : CategoryTheory.Limits.Fork f g} (i : s.pt ≅ t.pt) (w : CategoryTheory.CategoryStruct.comp i.hom t.ι = s.ι := by cat_disch) : (CategoryTheory.Limits.Fork.ext i w).inv = CategoryTheory.Limits.Fork.mkHom i.inv ⋯ - CategoryTheory.Limits.coequalizer.π_colimMap_desc 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} [CategoryTheory.Limits.HasCoequalizer f g] {X' Y' Z : C} (f' g' : X' ⟶ Y') [CategoryTheory.Limits.HasCoequalizer f' g'] (p : X ⟶ X') (q : Y ⟶ Y') (wf : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') (wg : CategoryTheory.CategoryStruct.comp g q = CategoryTheory.CategoryStruct.comp p g') (h : Y' ⟶ Z) (wh : CategoryTheory.CategoryStruct.comp f' h = CategoryTheory.CategoryStruct.comp g' h) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.coequalizer.π f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.colimMap (CategoryTheory.Limits.parallelPairHom f g f' g' p q wf wg)) (CategoryTheory.Limits.coequalizer.desc h wh)) = CategoryTheory.CategoryStruct.comp q h - CategoryTheory.Limits.Cofork.IsColimit.mk 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) (desc : (s : CategoryTheory.Limits.Cofork f g) → t.pt ⟶ s.pt) (fac : ∀ (s : CategoryTheory.Limits.Cofork f g), CategoryTheory.CategoryStruct.comp t.π (desc s) = s.π) (uniq : ∀ (s : CategoryTheory.Limits.Cofork f g) (m : t.pt ⟶ s.pt), CategoryTheory.CategoryStruct.comp t.π m = s.π → m = desc s) : CategoryTheory.Limits.IsColimit t - CategoryTheory.Limits.Fork.IsLimit.mk 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) (lift : (s : CategoryTheory.Limits.Fork f g) → s.pt ⟶ t.pt) (fac : ∀ (s : CategoryTheory.Limits.Fork f g), CategoryTheory.CategoryStruct.comp (lift s) t.ι = s.ι) (uniq : ∀ (s : CategoryTheory.Limits.Fork f g) (m : s.pt ⟶ t.pt), CategoryTheory.CategoryStruct.comp m t.ι = s.ι → m = lift s) : CategoryTheory.Limits.IsLimit t - CategoryTheory.Limits.Fork.ι_postcompose 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g f' g' : X ⟶ Y} {α : CategoryTheory.Limits.parallelPair f g ⟶ CategoryTheory.Limits.parallelPair f' g'} {c : CategoryTheory.Limits.Fork f g} : CategoryTheory.Limits.Fork.ι ((CategoryTheory.Limits.Cone.postcompose α).obj c) = CategoryTheory.CategoryStruct.comp c.ι (α.app CategoryTheory.Limits.WalkingParallelPair.zero) - CategoryTheory.Limits.coconeOfIsSplitEpi_ι_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f : X ⟶ Y) [CategoryTheory.IsSplitEpi f] (X✝ : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.coconeOfIsSplitEpi f).ι.app X✝ = CategoryTheory.Limits.WalkingParallelPair.casesOn X✝ (CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.id X) f) f - CategoryTheory.Limits.Cofork.π_precompose 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g f' g' : X ⟶ Y} {α : CategoryTheory.Limits.parallelPair f g ⟶ CategoryTheory.Limits.parallelPair f' g'} {c : CategoryTheory.Limits.Cofork f' g'} : CategoryTheory.Limits.Cofork.π ((CategoryTheory.Limits.Cocone.precompose α).obj c) = CategoryTheory.CategoryStruct.comp (α.app CategoryTheory.Limits.WalkingParallelPair.one) c.π - CategoryTheory.Limits.Cofork.IsColimit.mk' 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} (t : CategoryTheory.Limits.Cofork f g) (create : (s : CategoryTheory.Limits.Cofork f g) → { l // CategoryTheory.CategoryStruct.comp t.π l = s.π ∧ ∀ {m : t.pt ⟶ s.pt}, CategoryTheory.CategoryStruct.comp t.π m = s.π → m = l }) : CategoryTheory.Limits.IsColimit t - CategoryTheory.Limits.Fork.IsLimit.mk' 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) (create : (s : CategoryTheory.Limits.Fork f g) → { l // CategoryTheory.CategoryStruct.comp l t.ι = s.ι ∧ ∀ {m : s.pt ⟶ t.pt}, CategoryTheory.CategoryStruct.comp m t.ι = s.ι → m = l }) : CategoryTheory.Limits.IsLimit t - CategoryTheory.Limits.Cofork.isColimitOfIsos 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {X' Y' : C} (c : CategoryTheory.Limits.Cofork f g) (hc : CategoryTheory.Limits.IsColimit c) {f' g' : X' ⟶ Y'} (c' : CategoryTheory.Limits.Cofork f' g') (e₀ : X ≅ X') (e₁ : Y ≅ Y') (e : c.pt ≅ c'.pt) (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) (comm₃ : CategoryTheory.CategoryStruct.comp e₁.inv (CategoryTheory.CategoryStruct.comp c.π e.hom) = c'.π := by cat_disch) : CategoryTheory.Limits.IsColimit c' - CategoryTheory.Limits.Fork.isLimitOfIsos 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {X' Y' : C} (c : CategoryTheory.Limits.Fork f g) (hc : CategoryTheory.Limits.IsLimit c) {f' g' : X' ⟶ Y'} (c' : CategoryTheory.Limits.Fork f' g') (e₀ : X ≅ X') (e₁ : Y ≅ Y') (e : c.pt ≅ c'.pt) (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) (comm₃ : CategoryTheory.CategoryStruct.comp e.hom c'.ι = CategoryTheory.CategoryStruct.comp c.ι e₀.hom := by cat_disch) : CategoryTheory.Limits.IsLimit c' - CategoryTheory.Limits.Cofork.isColimitEquivOfIsos 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {X' Y' : C} (c : CategoryTheory.Limits.Cofork f g) {f' g' : X' ⟶ Y'} (c' : CategoryTheory.Limits.Cofork f' g') (e₀ : X ≅ X') (e₁ : Y ≅ Y') (e : c.pt ≅ c'.pt) (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) (comm₃ : CategoryTheory.CategoryStruct.comp e₁.inv (CategoryTheory.CategoryStruct.comp c.π e.hom) = c'.π := by cat_disch) : CategoryTheory.Limits.IsColimit c ≃ CategoryTheory.Limits.IsColimit c' - CategoryTheory.Limits.Fork.isLimitEquivOfIsos 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {X' Y' : C} (c : CategoryTheory.Limits.Fork f g) {f' g' : X' ⟶ Y'} (c' : CategoryTheory.Limits.Fork f' g') (e₀ : X ≅ X') (e₁ : Y ≅ Y') (e : c.pt ≅ c'.pt) (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) (comm₃ : CategoryTheory.CategoryStruct.comp e.hom c'.ι = CategoryTheory.CategoryStruct.comp c.ι e₀.hom := by cat_disch) : CategoryTheory.Limits.IsLimit c ≃ CategoryTheory.Limits.IsLimit c' - CategoryTheory.Limits.Fork.equalizer_ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Fork f g) {W : C} {k l : W ⟶ s.pt} (h : CategoryTheory.CategoryStruct.comp k s.ι = CategoryTheory.CategoryStruct.comp l s.ι) (j : CategoryTheory.Limits.WalkingParallelPair) : CategoryTheory.CategoryStruct.comp k (s.π.app j) = CategoryTheory.CategoryStruct.comp l (s.π.app j) - CategoryTheory.Limits.Fork.IsLimit.mk_lift 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (t : CategoryTheory.Limits.Fork f g) (lift : (s : CategoryTheory.Limits.Fork f g) → s.pt ⟶ t.pt) (fac : ∀ (s : CategoryTheory.Limits.Fork f g), CategoryTheory.CategoryStruct.comp (lift s) t.ι = s.ι) (uniq : ∀ (s : CategoryTheory.Limits.Fork f g) (m : s.pt ⟶ t.pt), CategoryTheory.CategoryStruct.comp m t.ι = s.ι → m = lift s) (s : CategoryTheory.Limits.Fork f g) : (CategoryTheory.Limits.Fork.IsLimit.mk t lift fac uniq).lift s = lift s - CategoryTheory.Limits.Fork.ofι_π_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} {P : C} (ι : P ⟶ X) (w : CategoryTheory.CategoryStruct.comp ι f = CategoryTheory.CategoryStruct.comp ι g) (X✝ : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.Fork.ofι ι w).π.app X✝ = CategoryTheory.Limits.WalkingParallelPair.casesOn (motive := fun t => X✝ = t → (((CategoryTheory.Functor.const CategoryTheory.Limits.WalkingParallelPair).obj P).obj X✝ ⟶ (CategoryTheory.Limits.parallelPair f g).obj X✝)) X✝ (fun h => ⋯ ▸ ι) (fun h => ⋯ ▸ CategoryTheory.CategoryStruct.comp ι f) ⋯ - CategoryTheory.Limits.Cofork.coequalizer_ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] {f g : X ⟶ Y} (s : CategoryTheory.Limits.Cofork f g) {W : C} {k l : s.pt ⟶ W} (h : CategoryTheory.CategoryStruct.comp s.π k = CategoryTheory.CategoryStruct.comp s.π l) (j : CategoryTheory.Limits.WalkingParallelPair) : CategoryTheory.CategoryStruct.comp (s.ι.app j) k = CategoryTheory.CategoryStruct.comp (s.ι.app j) l - CategoryTheory.Limits.Fork.equivOfIsos_functor_obj_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {X' Y' : C} {f' g' : X' ⟶ Y'} (e₀ : X ≅ X') (e₁ : Y ≅ Y') (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) (c : CategoryTheory.Limits.Fork f g) : ((CategoryTheory.Limits.Fork.equivOfIsos e₀ e₁ comm₁ comm₂).functor.obj c).ι = CategoryTheory.CategoryStruct.comp c.ι e₀.hom - CategoryTheory.Limits.Fork.equivOfIsos_inverse_obj_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {X' Y' : C} {f' g' : X' ⟶ Y'} (e₀ : X ≅ X') (e₁ : Y ≅ Y') (comm₁ : CategoryTheory.CategoryStruct.comp e₀.hom f' = CategoryTheory.CategoryStruct.comp f e₁.hom := by cat_disch) (comm₂ : CategoryTheory.CategoryStruct.comp e₀.hom g' = CategoryTheory.CategoryStruct.comp g e₁.hom := by cat_disch) (c : CategoryTheory.Limits.Fork f' g') : ((CategoryTheory.Limits.Fork.equivOfIsos e₀ e₁ comm₁ comm₂).inverse.obj c).ι = CategoryTheory.CategoryStruct.comp c.ι e₀.inv - CategoryTheory.Limits.Cocone.ofCofork_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C} (t : CategoryTheory.Limits.Cofork (F.map CategoryTheory.Limits.WalkingParallelPairHom.left) (F.map CategoryTheory.Limits.WalkingParallelPairHom.right)) (j : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.Cocone.ofCofork t).ι.app j = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) (t.ι.app j) - CategoryTheory.Limits.Cone.ofFork_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C} (t : CategoryTheory.Limits.Fork (F.map CategoryTheory.Limits.WalkingParallelPairHom.left) (F.map CategoryTheory.Limits.WalkingParallelPairHom.right)) (j : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.Cone.ofFork t).π.app j = CategoryTheory.CategoryStruct.comp (t.π.app j) (CategoryTheory.eqToHom ⋯) - CategoryTheory.Limits.Cofork.ofCocone_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C} (t : CategoryTheory.Limits.Cocone F) (j : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.Cofork.ofCocone t).ι.app j = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) (t.ι.app j) - CategoryTheory.Limits.Fork.ofCone_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Functor CategoryTheory.Limits.WalkingParallelPair C} (t : CategoryTheory.Limits.Cone F) (j : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.Fork.ofCone t).π.app j = CategoryTheory.CategoryStruct.comp (t.π.app j) (CategoryTheory.eqToHom ⋯) - CategoryTheory.Limits.coneOfIsSplitMono_π_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} {X Y : C} [CategoryTheory.Category.{v, u} C] (f : X ⟶ Y) [CategoryTheory.IsSplitMono f] (X✝ : CategoryTheory.Limits.WalkingParallelPair) : (CategoryTheory.Limits.coneOfIsSplitMono f).π.app X✝ = CategoryTheory.Limits.WalkingParallelPair.casesOn (motive := fun t => X✝ = t → (((CategoryTheory.Functor.const CategoryTheory.Limits.WalkingParallelPair).obj X).obj X✝ ⟶ (CategoryTheory.Limits.parallelPair (CategoryTheory.CategoryStruct.id Y) (CategoryTheory.CategoryStruct.comp (CategoryTheory.retraction f) f)).obj X✝)) X✝ (fun h => ⋯ ▸ f) (fun h => ⋯ ▸ CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.id Y)) ⋯ - CategoryTheory.Limits.Cofork.IsColimit.homIso_apply_coe 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Cofork f g} (ht : CategoryTheory.Limits.IsColimit t) (Z : C) (k : t.pt ⟶ Z) : ↑((CategoryTheory.Limits.Cofork.IsColimit.homIso ht Z) k) = CategoryTheory.CategoryStruct.comp t.π k - CategoryTheory.Limits.Fork.IsLimit.homIso_apply_coe 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Fork f g} (ht : CategoryTheory.Limits.IsLimit t) (Z : C) (k : Z ⟶ t.pt) : ↑((CategoryTheory.Limits.Fork.IsLimit.homIso ht Z) k) = CategoryTheory.CategoryStruct.comp k t.ι - CategoryTheory.Limits.Cofork.IsColimit.homIso_symm_apply 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Cofork f g} (ht : CategoryTheory.Limits.IsColimit t) (Z : C) (h : { h // CategoryTheory.CategoryStruct.comp f h = CategoryTheory.CategoryStruct.comp g h }) : (CategoryTheory.Limits.Cofork.IsColimit.homIso ht Z).symm h = ↑(CategoryTheory.Limits.Cofork.IsColimit.desc' ht ↑h ⋯) - CategoryTheory.Limits.Fork.IsLimit.homIso_symm_apply 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Fork f g} (ht : CategoryTheory.Limits.IsLimit t) (Z : C) (h : { h // CategoryTheory.CategoryStruct.comp h f = CategoryTheory.CategoryStruct.comp h g }) : (CategoryTheory.Limits.Fork.IsLimit.homIso ht Z).symm h = ↑(CategoryTheory.Limits.Fork.IsLimit.lift' ht ↑h ⋯) - CategoryTheory.Limits.Cofork.IsColimit.homIso_natural 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Cofork f g} {Z Z' : C} (q : Z ⟶ Z') (ht : CategoryTheory.Limits.IsColimit t) (k : t.pt ⟶ Z) : ↑((CategoryTheory.Limits.Cofork.IsColimit.homIso ht Z') (CategoryTheory.CategoryStruct.comp k q)) = CategoryTheory.CategoryStruct.comp (↑((CategoryTheory.Limits.Cofork.IsColimit.homIso ht Z) k)) q - CategoryTheory.Limits.Fork.IsLimit.homIso_natural 📋 Mathlib.CategoryTheory.Limits.Shapes.Equalizers
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} {f g : X ⟶ Y} {t : CategoryTheory.Limits.Fork f g} (ht : CategoryTheory.Limits.IsLimit t) {Z Z' : C} (q : Z' ⟶ Z) (k : Z ⟶ t.pt) : ↑((CategoryTheory.Limits.Fork.IsLimit.homIso ht Z') (CategoryTheory.CategoryStruct.comp q k)) = CategoryTheory.CategoryStruct.comp q ↑((CategoryTheory.Limits.Fork.IsLimit.homIso ht Z) k) - CategoryTheory.Limits.instEpiFactorThruImageOfHasLimitWalkingParallelPairParallelPair 📋 Mathlib.CategoryTheory.Limits.Shapes.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasImage f] [∀ {Z : C} (g h : CategoryTheory.Limits.image f ⟶ Z), CategoryTheory.Limits.HasLimit (CategoryTheory.Limits.parallelPair g h)] : CategoryTheory.Epi (CategoryTheory.Limits.factorThruImage f) - CategoryTheory.Limits.image.ext 📋 Mathlib.CategoryTheory.Limits.Shapes.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasImage f] {W : C} {g h : CategoryTheory.Limits.image f ⟶ W} [CategoryTheory.Limits.HasLimit (CategoryTheory.Limits.parallelPair g h)] (w : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.factorThruImage f) g = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.factorThruImage f) h) : g = h - CategoryTheory.Limits.cokernel.isColimitCoconeZeroCocone 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Epi f] : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.cokernel.zeroCokernelCofork f) - CategoryTheory.Limits.kernel.isLimitConeZeroCone 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Mono f] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.kernel.zeroKernelFork f) - CategoryTheory.Limits.cokernel.zeroCokernelCofork_pt 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasZeroObject C] : (CategoryTheory.Limits.cokernel.zeroCokernelCofork f).pt = 0 - CategoryTheory.Limits.kernel.zeroKernelFork_pt 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasZeroObject C] : (CategoryTheory.Limits.kernel.zeroKernelFork f).pt = 0 - CategoryTheory.Limits.CokernelCofork.IsColimit.isZero_of_epi 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {c : CategoryTheory.Limits.CokernelCofork f} (hc : CategoryTheory.Limits.IsColimit c) [CategoryTheory.Epi f] : CategoryTheory.Limits.IsZero c.pt - CategoryTheory.Limits.CokernelCofork.IsColimit.ofEpiOfIsZero 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (c : CategoryTheory.Limits.CokernelCofork f) (hf : CategoryTheory.Epi f) (h : CategoryTheory.Limits.IsZero c.pt) : CategoryTheory.Limits.IsColimit c - CategoryTheory.Limits.KernelFork.IsLimit.isZero_of_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {c : CategoryTheory.Limits.KernelFork f} (hc : CategoryTheory.Limits.IsLimit c) [CategoryTheory.Mono f] : CategoryTheory.Limits.IsZero c.pt - CategoryTheory.Limits.KernelFork.IsLimit.ofMonoOfIsZero 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (c : CategoryTheory.Limits.KernelFork f) (hf : CategoryTheory.Mono f) (h : CategoryTheory.Limits.IsZero c.pt) : CategoryTheory.Limits.IsLimit c - CategoryTheory.Limits.cokernel.cokernelIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] {Z : C} (l : Y ⟶ Z) (i : CategoryTheory.Limits.cokernel f ≅ Z) (h : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.cokernel.π f) i.hom = l) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ l ⋯) - CategoryTheory.Limits.kernel.isoKernel 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (l : Z ⟶ X) (i : Z ≅ CategoryTheory.Limits.kernel f) (h : CategoryTheory.CategoryStruct.comp i.hom (CategoryTheory.Limits.kernel.ι f) = l) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι l ⋯) - CategoryTheory.Limits.CokernelCofork.IsColimit.ofId 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) (hf : f = 0) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ (CategoryTheory.CategoryStruct.id Y) ⋯) - CategoryTheory.Limits.KernelFork.IsLimit.ofId 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) (hf : f = 0) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι (CategoryTheory.CategoryStruct.id X) ⋯) - CategoryTheory.Limits.ofιCongr 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {P : C} {ι ι' : P ⟶ X} {w : CategoryTheory.CategoryStruct.comp ι f = 0} (h : ι = ι') : CategoryTheory.Limits.KernelFork.ofι ι w ≅ CategoryTheory.Limits.KernelFork.ofι ι' ⋯ - CategoryTheory.Limits.ofπCongr 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {P : C} {π π' : Y ⟶ P} {w : CategoryTheory.CategoryStruct.comp f π = 0} (h : π = π') : CategoryTheory.Limits.CokernelCofork.ofπ π w ≅ CategoryTheory.Limits.CokernelCofork.ofπ π' ⋯ - CategoryTheory.Limits.compNatIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {D : Type u'} [CategoryTheory.Category.{v, u'} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.IsEquivalence] : (CategoryTheory.Limits.parallelPair f 0).comp F ≅ CategoryTheory.Limits.parallelPair (F.map f) 0 - CategoryTheory.Limits.CokernelCofork.π_ofπ 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y P : C} (f : X ⟶ Y) (π : Y ⟶ P) (w : CategoryTheory.CategoryStruct.comp f π = 0) : CategoryTheory.Limits.Cofork.π (CategoryTheory.Limits.CokernelCofork.ofπ π w) = π - CategoryTheory.Limits.KernelFork.ι_ofι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y P : C} (f : X ⟶ Y) (ι : P ⟶ X) (w : CategoryTheory.CategoryStruct.comp ι f = 0) : CategoryTheory.Limits.Fork.ι (CategoryTheory.Limits.KernelFork.ofι ι w) = ι - CategoryTheory.Limits.CokernelCofork.IsColimit.isIso_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (c : CategoryTheory.Limits.CokernelCofork f) (hc : CategoryTheory.Limits.IsColimit c) (hf : f = 0) : CategoryTheory.IsIso (CategoryTheory.Limits.Cofork.π c) - CategoryTheory.Limits.KernelFork.IsLimit.isIso_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (c : CategoryTheory.Limits.KernelFork f) (hc : CategoryTheory.Limits.IsLimit c) (hf : f = 0) : CategoryTheory.IsIso (CategoryTheory.Limits.Fork.ι c) - CategoryTheory.Limits.CokernelCofork.mapOfIsColimit 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {cc : CategoryTheory.Limits.CokernelCofork f} (hf : CategoryTheory.Limits.IsColimit cc) (cc' : CategoryTheory.Limits.CokernelCofork f') (φ : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') : cc.pt ⟶ cc'.pt - CategoryTheory.Limits.KernelFork.mapOfIsLimit 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} (kf : CategoryTheory.Limits.KernelFork f) {kf' : CategoryTheory.Limits.KernelFork f'} (hf' : CategoryTheory.Limits.IsLimit kf') (φ : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') : kf.pt ⟶ kf'.pt - CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {cc : CategoryTheory.Limits.CokernelCofork f} {cc' : CategoryTheory.Limits.CokernelCofork f'} (hf : CategoryTheory.Limits.IsColimit cc) (hf' : CategoryTheory.Limits.IsColimit cc') (φ : CategoryTheory.Arrow.mk f ≅ CategoryTheory.Arrow.mk f') : cc.pt ≅ cc'.pt - CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {kf : CategoryTheory.Limits.KernelFork f} {kf' : CategoryTheory.Limits.KernelFork f'} (hf : CategoryTheory.Limits.IsLimit kf) (hf' : CategoryTheory.Limits.IsLimit kf') (φ : CategoryTheory.Arrow.mk f ≅ CategoryTheory.Arrow.mk f') : kf.pt ≅ kf'.pt - CategoryTheory.Limits.CokernelCofork.IsColimit.ofπ' 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Q : C} {f : X ⟶ Y} (p : Y ⟶ Q) (w : CategoryTheory.CategoryStruct.comp f p = 0) (h : {A : C} → (k : Y ⟶ A) → CategoryTheory.CategoryStruct.comp f k = 0 → { l // CategoryTheory.CategoryStruct.comp p l = k }) [hp : CategoryTheory.Epi p] : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ p w) - CategoryTheory.Limits.KernelFork.IsLimit.ofι' 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y K : C} {f : X ⟶ Y} (i : K ⟶ X) (w : CategoryTheory.CategoryStruct.comp i f = 0) (h : {A : C} → (k : A ⟶ X) → CategoryTheory.CategoryStruct.comp k f = 0 → { l // CategoryTheory.CategoryStruct.comp l i = k }) [hi : CategoryTheory.Mono i] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι i w) - CategoryTheory.Limits.cokernel.ofIsoComp 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] {Z : C} (l : Z ⟶ Y) (i : X ≅ Z) (h : CategoryTheory.CategoryStruct.comp i.hom l = f) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ (CategoryTheory.Limits.cokernel.π f) ⋯) - CategoryTheory.Limits.kernel.ofCompIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (l : X ⟶ Z) (i : Z ≅ Y) (h : CategoryTheory.CategoryStruct.comp l i.hom = f) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι (CategoryTheory.Limits.kernel.ι f) ⋯) - CategoryTheory.Limits.isCokernelEpiComp 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {c : CategoryTheory.Limits.CokernelCofork f} (i : CategoryTheory.Limits.IsColimit c) {W : C} (g : W ⟶ X) [hg : CategoryTheory.Epi g] {h : W ⟶ Y} (hh : h = CategoryTheory.CategoryStruct.comp g f) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ (CategoryTheory.Limits.Cofork.π c) ⋯) - CategoryTheory.Limits.isKernelCompMono 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {c : CategoryTheory.Limits.KernelFork f} (i : CategoryTheory.Limits.IsLimit c) {Z : C} (g : Y ⟶ Z) [hg : CategoryTheory.Mono g] {h : X ⟶ Z} (hh : h = CategoryTheory.CategoryStruct.comp f g) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι (CategoryTheory.Limits.Fork.ι c) ⋯) - CategoryTheory.Limits.isoOfι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (s : CategoryTheory.Limits.Fork f 0) : s ≅ CategoryTheory.Limits.Fork.ofι s.ι ⋯ - CategoryTheory.Limits.isoOfπ 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (s : CategoryTheory.Limits.Cofork f 0) : s ≅ CategoryTheory.Limits.Cofork.ofπ s.π ⋯ - CategoryTheory.Limits.cokernel.zeroCokernelCofork_π 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasZeroObject C] : CategoryTheory.Limits.Cofork.π (CategoryTheory.Limits.cokernel.zeroCokernelCofork f) = 0 - CategoryTheory.Limits.kernel.zeroKernelFork_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasZeroObject C] : CategoryTheory.Limits.Fork.ι (CategoryTheory.Limits.kernel.zeroKernelFork f) = 0 - CategoryTheory.Limits.CokernelCofork.condition 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (s : CategoryTheory.Limits.CokernelCofork f) : CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.Cofork.π s) = 0 - CategoryTheory.Limits.KernelFork.condition 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (s : CategoryTheory.Limits.KernelFork f) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Fork.ι s) f = 0 - CategoryTheory.Limits.CokernelCofork.isColimitOfIsColimitOfIff' 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {c : CategoryTheory.Limits.CokernelCofork f} (hc : CategoryTheory.Limits.IsColimit c) {X' : C} (f' : X' ⟶ Y) (iff : ∀ ⦃W : C⦄ (φ : Y ⟶ W), CategoryTheory.CategoryStruct.comp f φ = 0 ↔ CategoryTheory.CategoryStruct.comp f' φ = 0) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ (CategoryTheory.Limits.Cofork.π c) ⋯) - CategoryTheory.Limits.KernelFork.isLimitOfIsLimitOfIff' 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {g : X ⟶ Y} {c : CategoryTheory.Limits.KernelFork g} (hc : CategoryTheory.Limits.IsLimit c) {Y' : C} (g' : X ⟶ Y') (iff : ∀ ⦃W : C⦄ (φ : W ⟶ X), CategoryTheory.CategoryStruct.comp φ g = 0 ↔ CategoryTheory.CategoryStruct.comp φ g' = 0) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι (CategoryTheory.Limits.Fork.ι c) ⋯) - CategoryTheory.Limits.CokernelCofork.IsColimit.desc' 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {s : CategoryTheory.Limits.CokernelCofork f} (hs : CategoryTheory.Limits.IsColimit s) {W : C} (k : Y ⟶ W) (h : CategoryTheory.CategoryStruct.comp f k = 0) : { l // CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Cofork.π s) l = k } - CategoryTheory.Limits.KernelFork.IsLimit.lift' 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {s : CategoryTheory.Limits.KernelFork f} (hs : CategoryTheory.Limits.IsLimit s) {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) : { l // CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.Fork.ι s) = k } - CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {cc : CategoryTheory.Limits.CokernelCofork f} {cc' : CategoryTheory.Limits.CokernelCofork f'} (hf : CategoryTheory.Limits.IsColimit cc) (hf' : CategoryTheory.Limits.IsColimit cc') (φ : CategoryTheory.Arrow.mk f ≅ CategoryTheory.Arrow.mk f') : (CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit hf hf' φ).hom = CategoryTheory.Limits.CokernelCofork.mapOfIsColimit hf cc' φ.hom - CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {cc : CategoryTheory.Limits.CokernelCofork f} {cc' : CategoryTheory.Limits.CokernelCofork f'} (hf : CategoryTheory.Limits.IsColimit cc) (hf' : CategoryTheory.Limits.IsColimit cc') (φ : CategoryTheory.Arrow.mk f ≅ CategoryTheory.Arrow.mk f') : (CategoryTheory.Limits.CokernelCofork.mapIsoOfIsColimit hf hf' φ).inv = CategoryTheory.Limits.CokernelCofork.mapOfIsColimit hf' cc φ.inv - CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {kf : CategoryTheory.Limits.KernelFork f} {kf' : CategoryTheory.Limits.KernelFork f'} (hf : CategoryTheory.Limits.IsLimit kf) (hf' : CategoryTheory.Limits.IsLimit kf') (φ : CategoryTheory.Arrow.mk f ≅ CategoryTheory.Arrow.mk f') : (CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit hf hf' φ).hom = kf.mapOfIsLimit hf' φ.hom - CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {X' Y' : C} {f' : X' ⟶ Y'} {kf : CategoryTheory.Limits.KernelFork f} {kf' : CategoryTheory.Limits.KernelFork f'} (hf : CategoryTheory.Limits.IsLimit kf) (hf' : CategoryTheory.Limits.IsLimit kf') (φ : CategoryTheory.Arrow.mk f ≅ CategoryTheory.Arrow.mk f') : (CategoryTheory.Limits.KernelFork.mapIsoOfIsLimit hf hf' φ).inv = kf'.mapOfIsLimit hf φ.inv - CategoryTheory.Limits.IsCokernel.cokernelIso 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) {Z : C} (l : Y ⟶ Z) {s : CategoryTheory.Limits.CokernelCofork f} (hs : CategoryTheory.Limits.IsColimit s) (i : s.pt ≅ Z) (h : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Cofork.π s) i.hom = l) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ l ⋯) - CategoryTheory.Limits.IsKernel.isoKernel 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) {Z : C} (l : Z ⟶ X) {s : CategoryTheory.Limits.KernelFork f} (hs : CategoryTheory.Limits.IsLimit s) (i : Z ≅ s.pt) (h : CategoryTheory.CategoryStruct.comp i.hom (CategoryTheory.Limits.Fork.ι s) = l) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι l ⋯) - CategoryTheory.Limits.CokernelCofork.condition_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (s : CategoryTheory.Limits.CokernelCofork f) {Z : C} (h : s.pt ⟶ Z) : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Cofork.π s) h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.Limits.KernelFork.condition_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} (s : CategoryTheory.Limits.KernelFork f) {Z : C} (h : Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Fork.ι s) (CategoryTheory.CategoryStruct.comp f h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.Limits.zeroCokernelOfZeroCancel 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X Y : C} (f : X ⟶ Y) (hf : ∀ (Z : C) (g : Y ⟶ Z), CategoryTheory.CategoryStruct.comp f g = 0 → g = 0) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ 0 ⋯) - CategoryTheory.Limits.zeroKernelOfCancelZero 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X Y : C} (f : X ⟶ Y) (hf : ∀ (Z : C) (g : Z ⟶ X), CategoryTheory.CategoryStruct.comp g f = 0 → g = 0) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι 0 ⋯) - CategoryTheory.Limits.CokernelCofork.IsColimit.ofπ 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {Z : C} (g : Y ⟶ Z) (eq : CategoryTheory.CategoryStruct.comp f g = 0) (desc : {Z' : C} → (g' : Y ⟶ Z') → CategoryTheory.CategoryStruct.comp f g' = 0 → (Z ⟶ Z')) (fac : ∀ {Z' : C} (g' : Y ⟶ Z') (eq' : CategoryTheory.CategoryStruct.comp f g' = 0), CategoryTheory.CategoryStruct.comp g (desc g' eq') = g') (uniq : ∀ {Z' : C} (g' : Y ⟶ Z') (eq' : CategoryTheory.CategoryStruct.comp f g' = 0) (m : Z ⟶ Z'), CategoryTheory.CategoryStruct.comp g m = g' → m = desc g' eq') : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ g eq) - CategoryTheory.Limits.KernelFork.IsLimit.ofι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {W : C} (g : W ⟶ X) (eq : CategoryTheory.CategoryStruct.comp g f = 0) (lift : {W' : C} → (g' : W' ⟶ X) → CategoryTheory.CategoryStruct.comp g' f = 0 → (W' ⟶ W)) (fac : ∀ {W' : C} (g' : W' ⟶ X) (eq' : CategoryTheory.CategoryStruct.comp g' f = 0), CategoryTheory.CategoryStruct.comp (lift g' eq') g = g') (uniq : ∀ {W' : C} (g' : W' ⟶ X) (eq' : CategoryTheory.CategoryStruct.comp g' f = 0) (m : W' ⟶ W), CategoryTheory.CategoryStruct.comp m g = g' → m = lift g' eq') : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι g eq) - CategoryTheory.Limits.CokernelCofork.isColimitOfIsColimitOfIff 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f : X ⟶ Y} {c : CategoryTheory.Limits.CokernelCofork f} (hc : CategoryTheory.Limits.IsColimit c) {X' Y' : C} (f' : X' ⟶ Y') (e : Y' ≅ Y) (iff : ∀ ⦃W : C⦄ (φ : Y ⟶ W), CategoryTheory.CategoryStruct.comp f φ = 0 ↔ CategoryTheory.CategoryStruct.comp f' (CategoryTheory.CategoryStruct.comp e.hom φ) = 0) : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ (CategoryTheory.CategoryStruct.comp e.hom (CategoryTheory.Limits.Cofork.π c)) ⋯) - CategoryTheory.Limits.KernelFork.isLimitOfIsLimitOfIff 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {g : X ⟶ Y} {c : CategoryTheory.Limits.KernelFork g} (hc : CategoryTheory.Limits.IsLimit c) {X' Y' : C} (g' : X' ⟶ Y') (e : X ≅ X') (iff : ∀ ⦃W : C⦄ (φ : W ⟶ X), CategoryTheory.CategoryStruct.comp φ g = 0 ↔ CategoryTheory.CategoryStruct.comp φ (CategoryTheory.CategoryStruct.comp e.hom g') = 0) : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Fork.ι c) e.hom) ⋯)
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
🔍Real.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
🔍"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
🔍_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
🔍Real.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
🔍(?a -> ?b) -> List ?a -> List ?b
🔍List ?a -> (?a -> ?b) -> List ?bBy main conclusion:
🔍|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of all→and∀) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
🔍|- _ < _ → tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
⊢ (_ : Type _)finds all definitions which provide data while⊢ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
🔍 Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ → _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision 69fae59