Loogle!
Result
Found 228 declarations mentioning CategoryTheory.Limits.HasKernel. Of these, only the first 200 are shown.
- CategoryTheory.Limits.HasKernel 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) : Prop - CategoryTheory.Limits.kernel 📋 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] : C - CategoryTheory.Limits.HasKernels.has_limit 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} {inst✝ : CategoryTheory.Category.{v, u} C} {inst✝¹ : CategoryTheory.Limits.HasZeroMorphisms C} [self : CategoryTheory.Limits.HasKernels C] {X Y : C} (f : X ⟶ Y) : CategoryTheory.Limits.HasKernel f - CategoryTheory.Limits.HasKernels.mk 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (has_limit : ∀ {X Y : C} (f : X ⟶ Y), CategoryTheory.Limits.HasKernel f := by infer_instance) : CategoryTheory.Limits.HasKernels C - CategoryTheory.Limits.kernel.ι 📋 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] : CategoryTheory.Limits.kernel f ⟶ X - CategoryTheory.Limits.isZero_kernel_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) [CategoryTheory.Mono f] [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Limits.IsZero (CategoryTheory.Limits.kernel f) - CategoryTheory.Limits.kernel.ofMono 📋 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.HasKernel f] [CategoryTheory.Mono f] : CategoryTheory.Limits.kernel f ≅ 0 - CategoryTheory.Limits.hasKernel_comp_mono 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] (g : Y ⟶ Z) [CategoryTheory.Mono g] : CategoryTheory.Limits.HasKernel (CategoryTheory.CategoryStruct.comp f g) - CategoryTheory.Limits.hasKernel_iso_comp 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.IsIso f] [CategoryTheory.Limits.HasKernel g] : CategoryTheory.Limits.HasKernel (CategoryTheory.CategoryStruct.comp f g) - CategoryTheory.Limits.kernelIsoOfEq 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) : CategoryTheory.Limits.kernel f ≅ CategoryTheory.Limits.kernel g - CategoryTheory.Limits.kernel.congr 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) : CategoryTheory.Limits.kernel f ≅ CategoryTheory.Limits.kernel g - CategoryTheory.Limits.kernelCompMono 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Mono g] : CategoryTheory.Limits.kernel (CategoryTheory.CategoryStruct.comp f g) ≅ CategoryTheory.Limits.kernel f - CategoryTheory.Limits.kernelIsIsoComp 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.IsIso f] [CategoryTheory.Limits.HasKernel g] : CategoryTheory.Limits.kernel (CategoryTheory.CategoryStruct.comp f g) ≅ CategoryTheory.Limits.kernel g - CategoryTheory.Limits.kernelIsoOfEq_refl 📋 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] {h : f = f} : CategoryTheory.Limits.kernelIsoOfEq h = CategoryTheory.Iso.refl (CategoryTheory.Limits.kernel f) - CategoryTheory.Limits.kernelFactorThruImage 📋 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] [CategoryTheory.Limits.HasImage f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.factorThruImage f)] : CategoryTheory.Limits.kernel (CategoryTheory.Limits.factorThruImage f) ≅ CategoryTheory.Limits.kernel f - CategoryTheory.Limits.eq_zero_of_epi_kernel 📋 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] [CategoryTheory.Epi (CategoryTheory.Limits.kernel.ι f)] : f = 0 - CategoryTheory.Limits.kernel.ι_of_zero 📋 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] (eq : f = 0) : CategoryTheory.IsIso (CategoryTheory.Limits.kernel.ι f) - CategoryTheory.Limits.kernel_not_epi_of_nonzero 📋 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] (w : f ≠ 0) : ¬CategoryTheory.Epi (CategoryTheory.Limits.kernel.ι f) - CategoryTheory.Limits.kernel_not_iso_of_nonzero 📋 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] (w : f ≠ 0) : CategoryTheory.IsIso (CategoryTheory.Limits.kernel.ι f) → False - CategoryTheory.Limits.kernel.lift 📋 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] {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) : W ⟶ CategoryTheory.Limits.kernel f - CategoryTheory.Limits.cokernel.of_kernel_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) [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Mono f] : CategoryTheory.IsIso (CategoryTheory.Limits.cokernel.π (CategoryTheory.Limits.kernel.ι f)) - CategoryTheory.Limits.kernel.of_cokernel_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) [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Epi f] : CategoryTheory.IsIso (CategoryTheory.Limits.kernel.ι (CategoryTheory.Limits.cokernel.π f)) - CategoryTheory.Limits.kernel.ι_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) [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Mono f] : CategoryTheory.Limits.kernel.ι f = 0 - CategoryTheory.Limits.equalizer_as_kernel 📋 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] : CategoryTheory.Limits.equalizer.ι f 0 = CategoryTheory.Limits.kernel.ι f - CategoryTheory.Limits.kernel.lift_mono 📋 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] {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) [CategoryTheory.Mono k] : CategoryTheory.Mono (CategoryTheory.Limits.kernel.lift f k h) - CategoryTheory.Limits.kernel.mapIso 📋 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] {X' Y' : C} (f' : X' ⟶ Y') [CategoryTheory.Limits.HasKernel f'] (p : X ≅ X') (q : Y ≅ Y') (w : CategoryTheory.CategoryStruct.comp f q.hom = CategoryTheory.CategoryStruct.comp p.hom f') : CategoryTheory.Limits.kernel f ≅ CategoryTheory.Limits.kernel f' - CategoryTheory.Limits.kernel.condition 📋 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] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) f = 0 - CategoryTheory.Limits.kernel.map 📋 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] {X' Y' : C} (f' : X' ⟶ Y') [CategoryTheory.Limits.HasKernel f'] (p : X ⟶ X') (q : Y ⟶ Y') (w : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') : CategoryTheory.Limits.kernel f ⟶ CategoryTheory.Limits.kernel f' - CategoryTheory.Limits.kernelComparison 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] : G.obj (CategoryTheory.Limits.kernel f) ⟶ CategoryTheory.Limits.kernel (G.map f) - CategoryTheory.Limits.kernel.map_id 📋 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] (q : Y ⟶ Y) (w : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.id X) f) : CategoryTheory.Limits.kernel.map f f (CategoryTheory.CategoryStruct.id X) q w = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.kernel f) - CategoryTheory.Limits.kernel.lift_ι 📋 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] {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift f k h) (CategoryTheory.Limits.kernel.ι f) = k - CategoryTheory.Limits.instIsIsoMapOfMono 📋 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] {X' Y' : C} (f' : X' ⟶ Y') [CategoryTheory.Limits.HasKernel f'] (p : X ⟶ X') (q : Y ⟶ Y') (w : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') [CategoryTheory.IsIso p] [CategoryTheory.Mono q] : CategoryTheory.IsIso (CategoryTheory.Limits.kernel.map f f' p q w) - CategoryTheory.Limits.kernelIsoOfEq_hom_comp_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelIsoOfEq h).hom (CategoryTheory.Limits.kernel.ι g) = CategoryTheory.Limits.kernel.ι f - CategoryTheory.Limits.kernelIsoOfEq_inv_comp_ι 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelIsoOfEq h).inv (CategoryTheory.Limits.kernel.ι f) = CategoryTheory.Limits.kernel.ι g - CategoryTheory.Limits.kernel.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) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) (CategoryTheory.CategoryStruct.comp f h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.Limits.kernel.lift' 📋 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] {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) : { l // CategoryTheory.CategoryStruct.comp l (CategoryTheory.Limits.kernel.ι f) = k } - 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.MonoFactorisation.kernel_ι_comp 📋 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] (F : CategoryTheory.Limits.MonoFactorisation f) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) F.e = 0 - CategoryTheory.Limits.kernel.lift_ι_assoc 📋 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] {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) {Z : C} (h✝ : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift f k h) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h✝) = CategoryTheory.CategoryStruct.comp k h✝ - CategoryTheory.Limits.kernelFactorThruImage_inv_comp_ι 📋 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] [CategoryTheory.Limits.HasImage f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.factorThruImage f)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelFactorThruImage f).inv (CategoryTheory.Limits.kernel.ι (CategoryTheory.Limits.factorThruImage f)) = CategoryTheory.Limits.kernel.ι f - CategoryTheory.Limits.kernelIsoOfEq_trans 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g h : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] [CategoryTheory.Limits.HasKernel h] (w₁ : f = g) (w₂ : g = h) : CategoryTheory.Limits.kernelIsoOfEq w₁ ≪≫ CategoryTheory.Limits.kernelIsoOfEq w₂ = CategoryTheory.Limits.kernelIsoOfEq ⋯ - CategoryTheory.Limits.kernel.mapIso_hom 📋 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] {X' Y' : C} (f' : X' ⟶ Y') [CategoryTheory.Limits.HasKernel f'] (p : X ≅ X') (q : Y ≅ Y') (w : CategoryTheory.CategoryStruct.comp f q.hom = CategoryTheory.CategoryStruct.comp p.hom f') : (CategoryTheory.Limits.kernel.mapIso f f' p q w).hom = CategoryTheory.Limits.kernel.map f f' p.hom q.hom w - CategoryTheory.Limits.kernelIsoOfEq_hom_comp_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) {Z : C} (h✝ : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelIsoOfEq h).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι g) h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h✝ - CategoryTheory.Limits.kernelIsoOfEq_inv_comp_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) {Z : C} (h✝ : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelIsoOfEq h).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι g) h✝ - CategoryTheory.Limits.kernelFactorThruImage_hom_comp_ι 📋 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] [CategoryTheory.Limits.HasImage f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.factorThruImage f)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelFactorThruImage f).hom (CategoryTheory.Limits.kernel.ι f) = CategoryTheory.Limits.kernel.ι (CategoryTheory.Limits.factorThruImage f) - CategoryTheory.Limits.kernelCompMono_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Mono g] : (CategoryTheory.Limits.kernelCompMono f g).inv = CategoryTheory.Limits.kernel.lift (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.Limits.kernel.ι f) ⋯ - CategoryTheory.Limits.kernel.mapIso_inv 📋 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] {X' Y' : C} (f' : X' ⟶ Y') [CategoryTheory.Limits.HasKernel f'] (p : X ≅ X') (q : Y ≅ Y') (w : CategoryTheory.CategoryStruct.comp f q.hom = CategoryTheory.CategoryStruct.comp p.hom f') : (CategoryTheory.Limits.kernel.mapIso f f' p q w).inv = CategoryTheory.Limits.kernel.map f' f p.inv q.inv ⋯ - CategoryTheory.Limits.kernel.lift_zero 📋 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] {W : C} {h : CategoryTheory.CategoryStruct.comp 0 f = 0} : CategoryTheory.Limits.kernel.lift f 0 h = 0 - CategoryTheory.Limits.kernelCompMono_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Mono g] : (CategoryTheory.Limits.kernelCompMono f g).hom = CategoryTheory.Limits.kernel.lift f (CategoryTheory.Limits.kernel.ι (CategoryTheory.CategoryStruct.comp f g)) ⋯ - CategoryTheory.Limits.kernelIsIsoComp_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.IsIso f] [CategoryTheory.Limits.HasKernel g] : (CategoryTheory.Limits.kernelIsIsoComp f g).inv = CategoryTheory.Limits.kernel.lift (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι g) (CategoryTheory.inv f)) ⋯ - CategoryTheory.Limits.lift_comp_kernelIsoOfEq_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) (e : Z ⟶ X) (he : CategoryTheory.CategoryStruct.comp e f = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift f e he) (CategoryTheory.Limits.kernelIsoOfEq h).hom = CategoryTheory.Limits.kernel.lift g e ⋯ - CategoryTheory.Limits.lift_comp_kernelIsoOfEq_inv 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) (e : Z ⟶ X) (he : CategoryTheory.CategoryStruct.comp e g = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift g e he) (CategoryTheory.Limits.kernelIsoOfEq h).inv = CategoryTheory.Limits.kernel.lift f e ⋯ - CategoryTheory.Limits.kernelComparison_comp_ι 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelComparison f G) (CategoryTheory.Limits.kernel.ι (G.map f)) = G.map (CategoryTheory.Limits.kernel.ι f) - CategoryTheory.Limits.kernelFactorThruImage_inv_comp_ι_assoc 📋 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] [CategoryTheory.Limits.HasImage f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.factorThruImage f)] {Z : C} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelFactorThruImage f).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι (CategoryTheory.Limits.factorThruImage f)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h - 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.kernelFactorThruImage_hom_comp_ι_assoc 📋 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] [CategoryTheory.Limits.HasImage f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.factorThruImage f)] {Z : C} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelFactorThruImage f).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι (CategoryTheory.Limits.factorThruImage f)) h - CategoryTheory.Limits.kernelIsIsoComp_hom 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.IsIso f] [CategoryTheory.Limits.HasKernel g] : (CategoryTheory.Limits.kernelIsIsoComp f g).hom = CategoryTheory.Limits.kernel.lift g (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι (CategoryTheory.CategoryStruct.comp f g)) f) ⋯ - CategoryTheory.Limits.kernel.map_zero 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y X' Y' : C} (f : X ⟶ Y) (f' : X' ⟶ Y') [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel f'] (q : Y ⟶ Y') (w : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp 0 f') : CategoryTheory.Limits.kernel.map f f' 0 q w = 0 - CategoryTheory.Limits.lift_comp_kernelIsoOfEq_hom_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) (e : Z ⟶ X) (he : CategoryTheory.CategoryStruct.comp e f = 0) {Z✝ : C} (h✝ : CategoryTheory.Limits.kernel g ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift f e he) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelIsoOfEq h).hom h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift g e ⋯) h✝ - CategoryTheory.Limits.lift_comp_kernelIsoOfEq_inv_assoc 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z : C} {f g : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] (h : f = g) (e : Z ⟶ X) (he : CategoryTheory.CategoryStruct.comp e g = 0) {Z✝ : C} (h✝ : CategoryTheory.Limits.kernel f ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift g e he) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelIsoOfEq h).inv h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift f e ⋯) h✝ - CategoryTheory.Limits.kernelComparison_comp_ι_assoc 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] {Z : D} (h : G.obj X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelComparison f G) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι (G.map f)) h) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.ι f)) h - CategoryTheory.Limits.map_lift_kernelComparison 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] {Z : C} {h : Z ⟶ X} (w : CategoryTheory.CategoryStruct.comp h f = 0) : CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.lift f h w)) (CategoryTheory.Limits.kernelComparison f G) = CategoryTheory.Limits.kernel.lift (G.map f) (G.map h) ⋯ - CategoryTheory.Limits.kernel.lift_map 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y Z X' Y' Z' : C} (f : X ⟶ Y) (g : Y ⟶ Z) [CategoryTheory.Limits.HasKernel g] (w : CategoryTheory.CategoryStruct.comp f g = 0) (f' : X' ⟶ Y') (g' : Y' ⟶ Z') [CategoryTheory.Limits.HasKernel g'] (w' : CategoryTheory.CategoryStruct.comp f' g' = 0) (p : X ⟶ X') (q : Y ⟶ Y') (r : Z ⟶ Z') (h₁ : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p f') (h₂ : CategoryTheory.CategoryStruct.comp g r = CategoryTheory.CategoryStruct.comp q g') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift g f w) (CategoryTheory.Limits.kernel.map g g' q r h₂) = CategoryTheory.CategoryStruct.comp p (CategoryTheory.Limits.kernel.lift g' f' w') - CategoryTheory.Limits.kernelIsKernel 📋 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] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι (CategoryTheory.Limits.kernel.ι f) ⋯) - CategoryTheory.Limits.map_lift_kernelComparison_assoc 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] {Z : C} {h : Z ⟶ X} (w : CategoryTheory.CategoryStruct.comp h f = 0) {Z✝ : D} (h✝ : CategoryTheory.Limits.kernel (G.map f) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.lift f h w)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelComparison f G) h✝) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.lift (G.map f) (G.map h) ⋯) h✝ - CategoryTheory.Limits.kernelComparison_comp_kernel_map 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X' Y' : C} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] (g : X' ⟶ Y') [CategoryTheory.Limits.HasKernel g] [CategoryTheory.Limits.HasKernel (G.map g)] (p : X ⟶ X') (q : Y ⟶ Y') (hpq : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelComparison f G) (CategoryTheory.Limits.kernel.map (G.map f) (G.map g) (G.map p) (G.map q) ⋯) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.map f g p q hpq)) (CategoryTheory.Limits.kernelComparison g G) - CategoryTheory.Limits.kernelComparison_comp_kernel_map_assoc 📋 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] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X' Y' : C} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] (g : X' ⟶ Y') [CategoryTheory.Limits.HasKernel g] [CategoryTheory.Limits.HasKernel (G.map g)] (p : X ⟶ X') (q : Y ⟶ Y') (hpq : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p g) {Z : D} (h : CategoryTheory.Limits.kernel (G.map g) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelComparison f G) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.map (G.map f) (G.map g) (G.map p) (G.map q) ⋯) h) = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.map f g p q hpq)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelComparison g G) h) - CategoryTheory.Preadditive.mono_of_isZero_kernel 📋 Mathlib.CategoryTheory.Preadditive.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] (h : CategoryTheory.Limits.IsZero (CategoryTheory.Limits.kernel f)) : CategoryTheory.Mono f - CategoryTheory.Preadditive.mono_iff_isZero_kernel 📋 Mathlib.CategoryTheory.Preadditive.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Mono f ↔ CategoryTheory.Limits.IsZero (CategoryTheory.Limits.kernel f) - CategoryTheory.Preadditive.hasEqualizer_of_hasKernel 📋 Mathlib.CategoryTheory.Preadditive.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {X Y : C} (f g : X ⟶ Y) [CategoryTheory.Limits.HasKernel (f - g)] : CategoryTheory.Limits.HasEqualizer f g - CategoryTheory.Preadditive.hasKernel_of_hasEqualizer 📋 Mathlib.CategoryTheory.Preadditive.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] {X Y : C} (f g : X ⟶ Y) [CategoryTheory.Limits.HasEqualizer f g] : CategoryTheory.Limits.HasKernel (f - g) - CategoryTheory.Limits.instHasKernelπ 📋 Mathlib.CategoryTheory.Limits.Shapes.Biproducts
{J : Type w} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (f : J → C) (i : J) [CategoryTheory.Limits.HasBiproduct f] [CategoryTheory.Limits.HasBiproduct (Subtype.restrict (fun j => j ≠ i) f)] : CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.biproduct.π f i) - CategoryTheory.Limits.instHasKernelToSubtype 📋 Mathlib.CategoryTheory.Limits.Shapes.Biproducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : Type} [Finite K] [CategoryTheory.Limits.HasFiniteBiproducts C] (f : K → C) (p : K → Prop) : CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.biproduct.toSubtype f p) - CategoryTheory.Limits.instHasKernelFst 📋 Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} [CategoryTheory.Limits.HasBinaryBiproduct X Y] : CategoryTheory.Limits.HasKernel CategoryTheory.Limits.biprod.fst - CategoryTheory.Limits.instHasKernelSnd 📋 Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} [CategoryTheory.Limits.HasBinaryBiproduct X Y] : CategoryTheory.Limits.HasKernel CategoryTheory.Limits.biprod.snd - CategoryTheory.Limits.kernel.condition_apply 📋 Mathlib.CategoryTheory.ConcreteCategory.Elementwise
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {F : C → C → Type uF} {carrier : C → Type w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : CategoryTheory.ConcreteCategory C F] (x : carrier (CategoryTheory.Limits.kernel f)) : (CategoryTheory.ConcreteCategory.hom f) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernel.ι f)) x) = (CategoryTheory.ConcreteCategory.hom 0) x - CategoryTheory.Limits.kernel.lift_ι_apply 📋 Mathlib.CategoryTheory.ConcreteCategory.Elementwise
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {W : C} (k : W ⟶ X) (h : CategoryTheory.CategoryStruct.comp k f = 0) {F : C → C → Type uF} {carrier : C → Type w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : CategoryTheory.ConcreteCategory C F] (x : carrier W) : (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernel.ι f)) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernel.lift f k h)) x) = (CategoryTheory.ConcreteCategory.hom k) x - CategoryTheory.Limits.instHasKernelMapOfPreservesLimitWalkingParallelPairParallelPairOfNatHom 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] : CategoryTheory.Limits.HasKernel (G.map f) - CategoryTheory.Limits.PreservesKernel.iso 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] : G.obj (CategoryTheory.Limits.kernel f) ≅ CategoryTheory.Limits.kernel (G.map f) - CategoryTheory.Limits.instIsIsoKernelComparison 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] : CategoryTheory.IsIso (CategoryTheory.Limits.kernelComparison f G) - CategoryTheory.Limits.PreservesKernel.of_iso_comparison 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [i : CategoryTheory.IsIso (CategoryTheory.Limits.kernelComparison f G)] : CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G - CategoryTheory.Limits.PreservesKernel.iso_hom 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] : (CategoryTheory.Limits.PreservesKernel.iso G f).hom = CategoryTheory.Limits.kernelComparison f G - CategoryTheory.Limits.isLimitOfHasKernelOfPreservesLimit 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.Fork.ofι (G.map (CategoryTheory.Limits.kernel.ι f)) ⋯) - CategoryTheory.Limits.PreservesKernel.iso_inv_ι 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesKernel.iso G f).inv (G.map (CategoryTheory.Limits.kernel.ι f)) = CategoryTheory.Limits.kernel.ι (G.map f) - CategoryTheory.Limits.PreservesKernel.iso_inv_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] {Z : D} (h : G.obj X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesKernel.iso G f).inv (CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.ι f)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι (G.map f)) h - CategoryTheory.Limits.kernel_map_comp_preserves_kernel_iso_inv 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] {X' Y' : C} (g : X' ⟶ Y') [CategoryTheory.Limits.HasKernel g] [CategoryTheory.Limits.HasKernel (G.map g)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair g 0) G] (p : X ⟶ X') (q : Y ⟶ Y') (hpq : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p g) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.map (G.map f) (G.map g) (G.map p) (G.map q) ⋯) (CategoryTheory.Limits.PreservesKernel.iso G g).inv = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesKernel.iso G f).inv (G.map (CategoryTheory.Limits.kernel.map f g p q hpq)) - CategoryTheory.Limits.kernel_map_comp_preserves_kernel_iso_inv_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (G : CategoryTheory.Functor C D) [G.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (G.map f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) G] {X' Y' : C} (g : X' ⟶ Y') [CategoryTheory.Limits.HasKernel g] [CategoryTheory.Limits.HasKernel (G.map g)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair g 0) G] (p : X ⟶ X') (q : Y ⟶ Y') (hpq : CategoryTheory.CategoryStruct.comp f q = CategoryTheory.CategoryStruct.comp p g) {Z : D} (h : G.obj (CategoryTheory.Limits.kernel g) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.map (G.map f) (G.map g) (G.map p) (G.map q) ⋯) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesKernel.iso G g).inv h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesKernel.iso G f).inv (CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.kernel.map f g p q hpq)) h) - CategoryTheory.Abelian.coimage 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : C - CategoryTheory.Abelian.image 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] : C - CategoryTheory.Abelian.factorThruCoimage 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : CategoryTheory.Abelian.coimage f ⟶ Q - CategoryTheory.Abelian.factorThruImage 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] : P ⟶ CategoryTheory.Abelian.image f - CategoryTheory.Abelian.coimage.π 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : P ⟶ CategoryTheory.Abelian.coimage f - CategoryTheory.Abelian.image.ι 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] : CategoryTheory.Abelian.image f ⟶ Q - CategoryTheory.Abelian.epi_factorThruCoimage 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Epi f] : CategoryTheory.Epi (CategoryTheory.Abelian.factorThruCoimage f) - CategoryTheory.Abelian.mono_factorThruImage 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Mono f] : CategoryTheory.Mono (CategoryTheory.Abelian.factorThruImage f) - CategoryTheory.Abelian.coimage.fac 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimage.π f) (CategoryTheory.Abelian.factorThruCoimage f) = f - CategoryTheory.Abelian.image.fac 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.factorThruImage f) (CategoryTheory.Abelian.image.ι f) = f - CategoryTheory.Abelian.coimageImageComparison 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : CategoryTheory.Abelian.coimage f ⟶ CategoryTheory.Abelian.image f - CategoryTheory.Abelian.coimageImageComparison' 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : CategoryTheory.Abelian.coimage f ⟶ CategoryTheory.Abelian.image f - CategoryTheory.Abelian.coimageImageComparison_eq_coimageImageComparison' 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : CategoryTheory.Abelian.coimageImageComparison f = CategoryTheory.Abelian.coimageImageComparison' f - CategoryTheory.Abelian.coimage_image_factorisation 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimage.π f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimageImageComparison f) (CategoryTheory.Abelian.image.ι f)) = f - CategoryTheory.Abelian.coimage_image_factorisation_assoc 📋 Mathlib.CategoryTheory.Abelian.Images
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {P Q : C} (f : P ⟶ Q) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] {Z : C} (h : Q ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimage.π f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimageImageComparison f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.image.ι f) h)) = CategoryTheory.CategoryStruct.comp f h - CategoryTheory.Abelian.isColimitMapCoconeOfCokernelCoforkOfπ 📋 Mathlib.CategoryTheory.Abelian.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Limits.HasZeroMorphisms D] {X Y : D} (p : X ⟶ Y) [CategoryTheory.Limits.HasKernel p] (F : CategoryTheory.Functor D C) [F.PreservesZeroMorphisms] [CategoryTheory.Epi (F.map p)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair p 0) F] : CategoryTheory.Limits.IsColimit (F.mapCocone (CategoryTheory.Limits.CokernelCofork.ofπ p ⋯)) - CategoryTheory.Abelian.PreservesCoimage.iso 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : F.obj (CategoryTheory.Abelian.coimage f) ≅ CategoryTheory.Abelian.coimage (F.map f) - CategoryTheory.Abelian.PreservesImage.iso 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] : F.obj (CategoryTheory.Abelian.image f) ≅ CategoryTheory.Abelian.image (F.map f) - CategoryTheory.Abelian.PreservesCoimage.factorThruCoimage_iso_hom 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).hom (CategoryTheory.Abelian.factorThruCoimage (F.map f)) = F.map (CategoryTheory.Abelian.factorThruCoimage f) - CategoryTheory.Abelian.PreservesCoimage.iso_inv_π 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimage.π (F.map f)) (CategoryTheory.Abelian.PreservesCoimage.iso F f).inv = F.map (CategoryTheory.Abelian.coimage.π f) - CategoryTheory.Abelian.PreservesImage.factorThruImage_iso_inv 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.factorThruImage (F.map f)) (CategoryTheory.Abelian.PreservesImage.iso F f).inv = F.map (CategoryTheory.Abelian.factorThruImage f) - CategoryTheory.Abelian.PreservesImage.iso_hom_ι 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesImage.iso F f).hom (CategoryTheory.Abelian.image.ι (F.map f)) = F.map (CategoryTheory.Abelian.image.ι f) - CategoryTheory.Abelian.PreservesCoimage.factorThruCoimage_iso_inv 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).inv (F.map (CategoryTheory.Abelian.factorThruCoimage f)) = CategoryTheory.Abelian.factorThruCoimage (F.map f) - CategoryTheory.Abelian.PreservesCoimage.iso_hom_π 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.coimage.π f)) (CategoryTheory.Abelian.PreservesCoimage.iso F f).hom = CategoryTheory.Abelian.coimage.π (F.map f) - CategoryTheory.Abelian.PreservesImage.factorThruImage_iso_hom 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.factorThruImage f)) (CategoryTheory.Abelian.PreservesImage.iso F f).hom = CategoryTheory.Abelian.factorThruImage (F.map f) - CategoryTheory.Abelian.PreservesImage.iso_inv_ι 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesImage.iso F f).inv (F.map (CategoryTheory.Abelian.image.ι f)) = CategoryTheory.Abelian.image.ι (F.map f) - CategoryTheory.Abelian.PreservesCoimage.factorThruCoimage_iso_hom_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] {Z : D} (h : F.obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.factorThruCoimage (F.map f)) h) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.factorThruCoimage f)) h - CategoryTheory.Abelian.PreservesCoimage.iso_inv_π_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] {Z : D} (h : F.obj (CategoryTheory.Abelian.coimage f) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimage.π (F.map f)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).inv h) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.coimage.π f)) h - CategoryTheory.Abelian.PreservesImage.factorThruImage_iso_inv_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] {Z : D} (h : F.obj (CategoryTheory.Abelian.image f) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.factorThruImage (F.map f)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesImage.iso F f).inv h) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.factorThruImage f)) h - CategoryTheory.Abelian.PreservesImage.iso_hom_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] {Z : D} (h : F.obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesImage.iso F f).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.image.ι (F.map f)) h) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.image.ι f)) h - CategoryTheory.Abelian.PreservesCoimage.factorThruCoimage_iso_inv_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] {Z : D} (h : F.obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).inv (CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.factorThruCoimage f)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.factorThruCoimage (F.map f)) h - CategoryTheory.Abelian.PreservesCoimage.iso_hom_π_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (F.map f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] {Z : D} (h : CategoryTheory.Abelian.coimage (F.map f) ⟶ Z) : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.coimage.π f)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).hom h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.coimage.π (F.map f)) h - CategoryTheory.Abelian.PreservesImage.factorThruImage_iso_hom_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] {Z : D} (h : CategoryTheory.Abelian.image (F.map f) ⟶ Z) : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.factorThruImage f)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesImage.iso F f).hom h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.factorThruImage (F.map f)) h - CategoryTheory.Abelian.PreservesImage.iso_inv_ι_assoc 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.HasCokernel (F.map f)] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] {Z : D} (h : F.obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesImage.iso F f).inv (CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.image.ι f)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.image.ι (F.map f)) h - CategoryTheory.Abelian.PreservesCoimageImageComparison.iso 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : CategoryTheory.Arrow.mk (F.map (CategoryTheory.Abelian.coimageImageComparison f)) ≅ CategoryTheory.Arrow.mk (CategoryTheory.Abelian.coimageImageComparison (F.map f)) - CategoryTheory.Abelian.PreservesCoimage.hom_coimageImageComparison 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Abelian.PreservesCoimage.iso F f).hom (CategoryTheory.Abelian.coimageImageComparison (F.map f)) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Abelian.coimageImageComparison f)) (CategoryTheory.Abelian.PreservesImage.iso F f).hom - CategoryTheory.Abelian.PreservesCoimageImageComparison.iso_hom_left 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : (CategoryTheory.Abelian.PreservesCoimageImageComparison.iso F f).hom.left = (CategoryTheory.Abelian.PreservesCoimage.iso F f).hom - CategoryTheory.Abelian.PreservesCoimageImageComparison.iso_hom_right 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : (CategoryTheory.Abelian.PreservesCoimageImageComparison.iso F f).hom.right = (CategoryTheory.Abelian.PreservesImage.iso F f).hom - CategoryTheory.Abelian.PreservesCoimageImageComparison.iso_inv_left 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : (CategoryTheory.Abelian.PreservesCoimageImageComparison.iso F f).inv.left = (CategoryTheory.Abelian.PreservesCoimage.iso F f).inv - CategoryTheory.Abelian.PreservesCoimageImageComparison.iso_inv_right 📋 Mathlib.CategoryTheory.Limits.Preserves.Shapes.AbelianImages
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.Limits.HasZeroMorphisms C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.Limits.HasZeroMorphisms D] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π f)] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι f)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair f 0) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.cokernel.π f) 0) F] [CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair (CategoryTheory.Limits.kernel.ι f) 0) F] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.π (F.map f))] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.ι (F.map f))] : (CategoryTheory.Abelian.PreservesCoimageImageComparison.iso F f).inv.right = (CategoryTheory.Abelian.PreservesImage.iso F f).inv - CategoryTheory.ShortComplex.HasLeftHomology.hasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasLeftHomology] : CategoryTheory.Limits.HasKernel S.g - CategoryTheory.ShortComplex.cyclesIsoKernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasLeftHomology] [CategoryTheory.Limits.HasKernel S.g] : S.cycles ≅ CategoryTheory.Limits.kernel S.g - CategoryTheory.ShortComplex.HasLeftHomology.of_hasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {Y Z : C} (g : Y ⟶ Z) (X : C) [CategoryTheory.Limits.HasKernel g] : { X₁ := X, X₂ := Y, X₃ := Z, f := 0, g := g, zero := ⋯ }.HasLeftHomology - CategoryTheory.ShortComplex.HasLeftHomology.hasCokernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasLeftHomology] [CategoryTheory.Limits.HasKernel S.g] : CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.HasLeftHomology.of_hasKernel_of_hasCokernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : S.HasLeftHomology - CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : S.LeftHomologyData - CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] (hf : S.f = 0) : S.LeftHomologyData - CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel_K 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : (CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel S).K = CategoryTheory.Limits.kernel S.g - CategoryTheory.ShortComplex.cyclesIsoKernel_hom 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasLeftHomology] [CategoryTheory.Limits.HasKernel S.g] : S.cyclesIsoKernel.hom = CategoryTheory.Limits.kernel.lift S.g S.iCycles ⋯ - CategoryTheory.ShortComplex.cyclesIsoKernel_inv 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasLeftHomology] [CategoryTheory.Limits.HasKernel S.g] : S.cyclesIsoKernel.inv = S.liftCycles (CategoryTheory.Limits.kernel.ι S.g) ⋯ - CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel_i 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : (CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel S).i = CategoryTheory.Limits.kernel.ι S.g - CategoryTheory.ShortComplex.leftHomologyIsoCokernelLift 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} [S.HasLeftHomology] [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : S.leftHomology ≅ CategoryTheory.Limits.cokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel_H 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : (CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel S).H = CategoryTheory.Limits.cokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel_π 📋 Mathlib.Algebra.Homology.ShortComplex.LeftHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : (CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernelOfHasCokernel S).π = CategoryTheory.Limits.cokernel.π (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.HasRightHomology.of_hasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {Y Z : C} (g : Y ⟶ Z) (X : C) [CategoryTheory.Limits.HasKernel g] : { X₁ := X, X₂ := Y, X₃ := Z, f := 0, g := g, zero := ⋯ }.HasRightHomology - CategoryTheory.ShortComplex.HasRightHomology.hasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasRightHomology] [CategoryTheory.Limits.HasCokernel S.f] : CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯) - CategoryTheory.ShortComplex.HasRightHomology.of_hasCokernel_of_hasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : S.HasRightHomology - CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : S.RightHomologyData - CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] (hf : S.f = 0) : S.RightHomologyData - CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel_Q 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] (hf : S.f = 0) : (CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel S hf).Q = S.X₂ - CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel_Q 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : (CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel S).Q = CategoryTheory.Limits.cokernel S.f - CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel_H 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] (hf : S.f = 0) : (CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel S hf).H = CategoryTheory.Limits.kernel S.g - CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel_p 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] (hf : S.f = 0) : (CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel S hf).p = CategoryTheory.CategoryStruct.id S.X₂ - CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel_p 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : (CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel S).p = CategoryTheory.Limits.cokernel.π S.f - CategoryTheory.ShortComplex.rightHomologyIsoKernelDesc 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasRightHomology] [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : S.rightHomology ≅ CategoryTheory.Limits.kernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯) - CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel_H 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : (CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel S).H = CategoryTheory.Limits.kernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯) - CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel_ι 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : (CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernelOfHasKernel S).ι = CategoryTheory.Limits.kernel.ι (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯) - CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel_ι 📋 Mathlib.Algebra.Homology.ShortComplex.RightHomology
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasKernel S.g] (hf : S.f = 0) : (CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel S hf).ι = CategoryTheory.Limits.kernel.ι S.g - CategoryTheory.ShortComplex.hasHomology_of_hasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {Y Z : C} (g : Y ⟶ Z) (X : C) [CategoryTheory.Limits.HasKernel g] : { X₁ := X, X₂ := Y, X₃ := Z, f := 0, g := g, zero := ⋯ }.HasHomology - CategoryTheory.ShortComplex.HomologyData.ofHasKernel 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g] : S.HomologyData - CategoryTheory.ShortComplex.HomologyData.ofHasKernel_left 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g] : (CategoryTheory.ShortComplex.HomologyData.ofHasKernel S hf).left = CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernel S hf - CategoryTheory.ShortComplex.HomologyData.ofHasKernel_right 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g] : (CategoryTheory.ShortComplex.HomologyData.ofHasKernel S hf).right = CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel S hf - CategoryTheory.ShortComplex.HomologyData.ofHasKernel_iso 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g] : (CategoryTheory.ShortComplex.HomologyData.ofHasKernel S hf).iso = CategoryTheory.Iso.refl (CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernel S hf).H - CategoryTheory.ShortComplex.homologyIsoCokernelLift 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)] : S.homology ≅ CategoryTheory.Limits.cokernel (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.homologyIsoKernelDesc 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] [CategoryTheory.Limits.HasCokernel S.f] [CategoryTheory.Limits.HasKernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)] : S.homology ≅ CategoryTheory.Limits.kernel (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯) - CategoryTheory.Projective.syzygies 📋 Mathlib.CategoryTheory.Preadditive.Projective.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EnoughProjectives C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : C - CategoryTheory.Projective.instSyzygies 📋 Mathlib.CategoryTheory.Preadditive.Projective.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EnoughProjectives C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Projective (CategoryTheory.Projective.syzygies f) - CategoryTheory.Projective.d 📋 Mathlib.CategoryTheory.Preadditive.Projective.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EnoughProjectives C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Projective.syzygies f ⟶ X - CategoryTheory.ShortComplex.Exact.epi_kernelLift 📋 Mathlib.Algebra.Homology.ShortComplex.Exact
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [S.HasHomology] [CategoryTheory.Limits.HasKernel S.g] (hS : S.Exact) : CategoryTheory.Epi (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.exact_iff_epi_kernel_lift 📋 Mathlib.Algebra.Homology.ShortComplex.Exact
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] [CategoryTheory.Limits.HasKernel S.g] : S.Exact ↔ CategoryTheory.Epi (CategoryTheory.Limits.kernel.lift S.g S.f ⋯) - CategoryTheory.ShortComplex.exact_iff_kernel_ι_comp_cokernel_π_zero 📋 Mathlib.Algebra.Homology.ShortComplex.Exact
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] [CategoryTheory.Limits.HasKernel S.g] [CategoryTheory.Limits.HasCokernel S.f] : S.Exact ↔ CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f) = 0 - CategoryTheory.Limits.kernelSubobject 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Subobject X - CategoryTheory.Limits.kernelSubobjectIso 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f) ≅ CategoryTheory.Limits.kernel f - CategoryTheory.Limits.kernelSubobject_comp_mono 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : Y ⟶ Z) [CategoryTheory.Mono h] : CategoryTheory.Limits.kernelSubobject (CategoryTheory.CategoryStruct.comp f h) = CategoryTheory.Limits.kernelSubobject f - CategoryTheory.Limits.kernelSubobject_comp_le 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : Y ⟶ Z) [CategoryTheory.Limits.HasKernel (CategoryTheory.CategoryStruct.comp f h)] : CategoryTheory.Limits.kernelSubobject f ≤ CategoryTheory.Limits.kernelSubobject (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.kernelSubobject_factors 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {W : C} (h : W ⟶ X) (w : CategoryTheory.CategoryStruct.comp h f = 0) : (CategoryTheory.Limits.kernelSubobject f).Factors h - CategoryTheory.Limits.kernelSubobject_factors_iff 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {W : C} (h : W ⟶ X) : (CategoryTheory.Limits.kernelSubobject f).Factors h ↔ CategoryTheory.CategoryStruct.comp h f = 0 - CategoryTheory.Limits.factorThruKernelSubobject 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {W : C} (h : W ⟶ X) (w : CategoryTheory.CategoryStruct.comp h f = 0) : W ⟶ CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f) - CategoryTheory.Limits.kernelSubobjectIsoComp 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {X' : C} (f : X' ⟶ X) [CategoryTheory.IsIso f] (g : X ⟶ Y) [CategoryTheory.Limits.HasKernel g] : CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject (CategoryTheory.CategoryStruct.comp f g)) ≅ CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject g) - CategoryTheory.Limits.kernelSubobjectMap 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') : CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f) ⟶ CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f') - CategoryTheory.Limits.factorThruKernelSubobject_comp_arrow 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {W : C} (h : W ⟶ X) (w : CategoryTheory.CategoryStruct.comp h f = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.factorThruKernelSubobject f h w) (CategoryTheory.Limits.kernelSubobject f).arrow = h - CategoryTheory.Limits.kernelSubobject_arrow' 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).inv (CategoryTheory.Limits.kernelSubobject f).arrow = CategoryTheory.Limits.kernel.ι f - CategoryTheory.Limits.kernelSubobjectMap_id 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] : CategoryTheory.Limits.kernelSubobjectMap (CategoryTheory.CategoryStruct.id (CategoryTheory.Arrow.mk f)) = CategoryTheory.CategoryStruct.id (CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f)) - CategoryTheory.Limits.kernelSubobject_arrow 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).hom (CategoryTheory.Limits.kernel.ι f) = (CategoryTheory.Limits.kernelSubobject f).arrow - CategoryTheory.Limits.kernelSubobject_comp_mono_isIso 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : Y ⟶ Z) [CategoryTheory.Mono h] : CategoryTheory.IsIso ((CategoryTheory.Limits.kernelSubobject f).ofLE (CategoryTheory.Limits.kernelSubobject (CategoryTheory.CategoryStruct.comp f h)) ⋯) - CategoryTheory.Limits.factorThruKernelSubobject_comp_kernelSubobjectIso 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {W : C} (h : W ⟶ X) (w : CategoryTheory.CategoryStruct.comp h f = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.factorThruKernelSubobject f h w) (CategoryTheory.Limits.kernelSubobjectIso f).hom = CategoryTheory.Limits.kernel.lift f h w - CategoryTheory.Limits.kernelSubobject_arrow'_assoc 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f).arrow h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h - CategoryTheory.Limits.le_kernelSubobject 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] (A : CategoryTheory.Subobject X) (h : CategoryTheory.CategoryStruct.comp A.arrow f = 0) : A ≤ CategoryTheory.Limits.kernelSubobject f - CategoryTheory.Limits.kernelSubobject_arrow_comp 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f).arrow f = 0 - CategoryTheory.Limits.kernelSubobject_arrow_assoc 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : X ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι f) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f).arrow h - CategoryTheory.Limits.kernelSubobjectMap_arrow 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectMap sq) (CategoryTheory.Limits.kernelSubobject f').arrow = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f).arrow (CategoryTheory.Arrow.Hom.left sq) - CategoryTheory.Limits.kernelSubobject_arrow_comp_assoc 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {Z : C} (h : Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f).arrow (CategoryTheory.CategoryStruct.comp f h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.Limits.kernelSubobjectMap_arrow_assoc 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') {Z : C} (h : X' ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectMap sq) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f').arrow h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject f).arrow (CategoryTheory.CategoryStruct.comp (CategoryTheory.Arrow.Hom.left sq) h) - CategoryTheory.Limits.kernelSubobjectMap_comp 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] {X'' Y'' : C} {f'' : X'' ⟶ Y''} [CategoryTheory.Limits.HasKernel f''] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') (sq' : CategoryTheory.Arrow.mk f' ⟶ CategoryTheory.Arrow.mk f'') : CategoryTheory.Limits.kernelSubobjectMap (CategoryTheory.CategoryStruct.comp sq sq') = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectMap sq) (CategoryTheory.Limits.kernelSubobjectMap sq') - CategoryTheory.Limits.kernelSubobjectIsoComp_inv_arrow 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {X' : C} (f : X' ⟶ X) [CategoryTheory.IsIso f] (g : X ⟶ Y) [CategoryTheory.Limits.HasKernel g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIsoComp f g).inv (CategoryTheory.Limits.kernelSubobject (CategoryTheory.CategoryStruct.comp f g)).arrow = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject g).arrow (CategoryTheory.inv f) - CategoryTheory.Limits.kernelSubobjectIsoComp_hom_arrow 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {X' : C} (f : X' ⟶ X) [CategoryTheory.IsIso f] (g : X ⟶ Y) [CategoryTheory.Limits.HasKernel g] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIsoComp f g).hom (CategoryTheory.Limits.kernelSubobject g).arrow = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobject (CategoryTheory.CategoryStruct.comp f g)).arrow f - CategoryTheory.Limits.kernelSubobject_arrow'_apply 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {F : C → C → Type uF} {carrier : C → Type w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : CategoryTheory.ConcreteCategory C F] (x : carrier (CategoryTheory.Limits.kernel f)) : (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobject f).arrow) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobjectIso f).inv) x) = (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernel.ι f)) x - CategoryTheory.Limits.kernelSubobject_arrow_apply 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {F : C → C → Type uF} {carrier : C → Type w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : CategoryTheory.ConcreteCategory C F] (x : carrier (CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f))) : (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernel.ι f)) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobjectIso f).hom) x) = (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobject f).arrow) x - CategoryTheory.Limits.kernelSubobject_arrow_comp_apply 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] (f : X ⟶ Y) [CategoryTheory.Limits.HasKernel f] {F : C → C → Type uF} {carrier : C → Type w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : CategoryTheory.ConcreteCategory C F] (x : carrier (CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f))) : (CategoryTheory.ConcreteCategory.hom f) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobject f).arrow) x) = (CategoryTheory.ConcreteCategory.hom 0) x - CategoryTheory.Limits.kernelSubobjectIso_comp_kernel_map 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).hom (CategoryTheory.Limits.kernel.map f f' sq.left sq.right ⋯) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectMap sq) (CategoryTheory.Limits.kernelSubobjectIso f').hom - CategoryTheory.Limits.kernel_map_comp_kernelSubobjectIso_inv 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.map f f' sq.left sq.right ⋯) (CategoryTheory.Limits.kernelSubobjectIso f').inv = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).inv (CategoryTheory.Limits.kernelSubobjectMap sq) - CategoryTheory.Limits.kernelSubobjectMap_arrow_apply 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') {F : C → C → Type uF} {carrier : C → Type w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : CategoryTheory.ConcreteCategory C F] (x : carrier (CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject f))) : (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobject f').arrow) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobjectMap sq)) x) = (CategoryTheory.ConcreteCategory.hom (CategoryTheory.Arrow.Hom.left sq)) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.kernelSubobject f).arrow) x) - CategoryTheory.Limits.kernelSubobjectIso_comp_kernel_map_assoc 📋 Mathlib.CategoryTheory.Subobject.Limits
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasZeroMorphisms C] {f : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] {X' Y' : C} {f' : X' ⟶ Y'} [CategoryTheory.Limits.HasKernel f'] (sq : CategoryTheory.Arrow.mk f ⟶ CategoryTheory.Arrow.mk f') {Z : C} (h : CategoryTheory.Limits.kernel f' ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.map f f' sq.left sq.right ⋯) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectMap sq) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernelSubobjectIso f').hom h)
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