Loogle!
Result
Found 93 declarations mentioning CategoryTheory.InjectiveResolution.cocomplex.
- CategoryTheory.InjectiveResolution.cocomplex 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.InjectiveResolution Z) : CochainComplex C ℕ - CategoryTheory.InjectiveResolution.hasHomology 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.InjectiveResolution Z) (i : ℕ) : HomologicalComplex.HasHomology self.cocomplex i - CategoryTheory.InjectiveResolution.injective 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.InjectiveResolution Z) (n : ℕ) : CategoryTheory.Injective (self.cocomplex.X n) - CategoryTheory.InjectiveResolution.cocomplex_exactAt_succ 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) (n : ℕ) : HomologicalComplex.ExactAt I.cocomplex (n + 1) - CategoryTheory.InjectiveResolution.self_cocomplex 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (Z : C) [CategoryTheory.Injective Z] : (CategoryTheory.InjectiveResolution.self Z).cocomplex = (CochainComplex.single₀ C).obj Z - CategoryTheory.InjectiveResolution.Hom.hom 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {I : CategoryTheory.InjectiveResolution Z} {Z' : C} {I' : CategoryTheory.InjectiveResolution Z'} {f : Z ⟶ Z'} (self : I.Hom I' f) : I.cocomplex ⟶ I'.cocomplex - CategoryTheory.InjectiveResolution.quasiIso 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.InjectiveResolution Z) : QuasiIso self.ι - CategoryTheory.InjectiveResolution.ι 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.InjectiveResolution Z) : (CochainComplex.single₀ C).obj Z ⟶ self.cocomplex - CategoryTheory.InjectiveResolution.kernelFork 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) : CategoryTheory.Limits.KernelFork (I.cocomplex.d 0 1) - CategoryTheory.InjectiveResolution.instMonoFNatι 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) (n : ℕ) : CategoryTheory.Mono (I.ι.f n) - CategoryTheory.InjectiveResolution.exact_succ 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) (n : ℕ) : { X₁ := I.cocomplex.X n, X₂ := I.cocomplex.X (n + 1), X₃ := I.cocomplex.X (n + 2), f := I.cocomplex.d n (n + 1), g := I.cocomplex.d (n + 1) (n + 2), zero := ⋯ }.Exact - CategoryTheory.InjectiveResolution.isLimitKernelFork 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) : CategoryTheory.Limits.IsLimit I.kernelFork - CategoryTheory.InjectiveResolution.Hom.ι_comp_hom 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {I : CategoryTheory.InjectiveResolution Z} {Z' : C} {I' : CategoryTheory.InjectiveResolution Z'} {f : Z ⟶ Z'} (φ : I.Hom I' f) : CategoryTheory.CategoryStruct.comp I.ι φ.hom = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) I'.ι - CategoryTheory.InjectiveResolution.complex_d_comp 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) (n : ℕ) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d n (n + 1)) (I.cocomplex.d (n + 1) (n + 2)) = 0 - CategoryTheory.InjectiveResolution.ι_f_succ 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) (n : ℕ) : I.ι.f (n + 1) = 0 - CategoryTheory.InjectiveResolution.Hom.ι_comp_hom_assoc 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {I : CategoryTheory.InjectiveResolution Z} {Z' : C} {I' : CategoryTheory.InjectiveResolution Z'} {f : Z ⟶ Z'} (φ : I.Hom I' f) {Z✝ : CochainComplex C ℕ} (h : I'.cocomplex ⟶ Z✝) : CategoryTheory.CategoryStruct.comp I.ι (CategoryTheory.CategoryStruct.comp φ.hom h) = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) (CategoryTheory.CategoryStruct.comp I'.ι h) - CategoryTheory.InjectiveResolution.ι_f_zero_comp_complex_d 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (I.cocomplex.d 0 1) = 0 - CategoryTheory.InjectiveResolution.Hom.ι_f_zero_comp_hom_f_zero 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {I : CategoryTheory.InjectiveResolution Z} {Z' : C} {I' : CategoryTheory.InjectiveResolution Z'} {f : Z ⟶ Z'} (self : I.Hom I' f) : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (self.hom.f 0) = CategoryTheory.CategoryStruct.comp (((CochainComplex.single₀ C).map f).f 0) (I'.ι.f 0) - CategoryTheory.InjectiveResolution.ι_f_zero_comp_complex_d_assoc 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) {Z✝ : C} (h : I.cocomplex.X 1 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (CategoryTheory.CategoryStruct.comp (I.cocomplex.d 0 1) h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.InjectiveResolution.Hom.mk 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {I : CategoryTheory.InjectiveResolution Z} {Z' : C} {I' : CategoryTheory.InjectiveResolution Z'} {f : Z ⟶ Z'} (hom : I.cocomplex ⟶ I'.cocomplex) (ι_f_zero_comp_hom_f_zero : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (hom.f 0) = CategoryTheory.CategoryStruct.comp (((CochainComplex.single₀ C).map f).f 0) (I'.ι.f 0)) : I.Hom I' f - CategoryTheory.InjectiveResolution.Hom.ι_f_zero_comp_hom_f_zero_assoc 📋 Mathlib.CategoryTheory.Preadditive.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {I : CategoryTheory.InjectiveResolution Z} {Z' : C} {I' : CategoryTheory.InjectiveResolution Z'} {f : Z ⟶ Z'} (self : I.Hom I' f) {Z✝ : C} (h : I'.cocomplex.X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (CategoryTheory.CategoryStruct.comp (self.hom.f 0) h) = CategoryTheory.CategoryStruct.comp (((CochainComplex.single₀ C).map f).f 0) (CategoryTheory.CategoryStruct.comp (I'.ι.f 0) h) - CategoryTheory.InjectiveResolution.homotopyEquiv 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (I J : CategoryTheory.InjectiveResolution X) : HomotopyEquiv I.cocomplex J.cocomplex - CategoryTheory.InjectiveResolution.descFZero 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) : J.cocomplex.X 0 ⟶ I.cocomplex.X 0 - CategoryTheory.InjectiveResolution.descFOne 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) : J.cocomplex.X 1 ⟶ I.cocomplex.X 1 - CategoryTheory.InjectiveResolution.desc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) : J.cocomplex ⟶ I.cocomplex - CategoryTheory.InjectiveResolution.descIdHomotopy 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (X : C) (I : CategoryTheory.InjectiveResolution X) : Homotopy (CategoryTheory.InjectiveResolution.desc (CategoryTheory.CategoryStruct.id X) I I) (CategoryTheory.CategoryStruct.id I.cocomplex) - CategoryTheory.InjectiveResolution.descCompHomotopy 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (K : CategoryTheory.InjectiveResolution Z) : Homotopy (CategoryTheory.InjectiveResolution.desc (CategoryTheory.CategoryStruct.comp f g) K I) (CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.desc f J I) (CategoryTheory.InjectiveResolution.desc g K J)) - CategoryTheory.InjectiveResolution.exact₀ 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Z : C} (I : CategoryTheory.InjectiveResolution Z) : { X₁ := ((CochainComplex.single₀ C).obj Z).X 0, X₂ := I.cocomplex.X 0, X₃ := I.cocomplex.X 1, f := I.ι.f 0, g := I.cocomplex.d 0 1, zero := ⋯ }.Exact - CategoryTheory.InjectiveResolution.homotopyEquiv_hom_ι 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (I J : CategoryTheory.InjectiveResolution X) : CategoryTheory.CategoryStruct.comp I.ι (I.homotopyEquiv J).hom = J.ι - CategoryTheory.InjectiveResolution.homotopyEquiv_inv_ι 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (I J : CategoryTheory.InjectiveResolution X) : CategoryTheory.CategoryStruct.comp J.ι (I.homotopyEquiv J).inv = I.ι - CategoryTheory.InjectiveResolution.iso 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] {X : C} (I : CategoryTheory.InjectiveResolution X) : (CategoryTheory.injectiveResolutions C).obj X ≅ (HomotopyCategory.quotient C (ComplexShape.up ℕ)).obj I.cocomplex - CategoryTheory.InjectiveResolution.descFOne_zero_comm 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) : CategoryTheory.CategoryStruct.comp (J.cocomplex.d 0 1) (CategoryTheory.InjectiveResolution.descFOne f I J) = CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.descFZero f I J) (I.cocomplex.d 0 1) - CategoryTheory.InjectiveResolution.desc_commutes 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) : CategoryTheory.CategoryStruct.comp J.ι (CategoryTheory.InjectiveResolution.desc f I J) = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) I.ι - CategoryTheory.InjectiveResolution.homotopyEquiv_hom_ι_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (I J : CategoryTheory.InjectiveResolution X) {Z : CochainComplex C ℕ} (h : J.cocomplex ⟶ Z) : CategoryTheory.CategoryStruct.comp I.ι (CategoryTheory.CategoryStruct.comp (I.homotopyEquiv J).hom h) = CategoryTheory.CategoryStruct.comp J.ι h - CategoryTheory.InjectiveResolution.homotopyEquiv_inv_ι_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (I J : CategoryTheory.InjectiveResolution X) {Z : CochainComplex C ℕ} (h : I.cocomplex ⟶ Z) : CategoryTheory.CategoryStruct.comp J.ι (CategoryTheory.CategoryStruct.comp (I.homotopyEquiv J).inv h) = CategoryTheory.CategoryStruct.comp I.ι h - CategoryTheory.InjectiveResolution.desc_commutes_zero 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) : CategoryTheory.CategoryStruct.comp (J.ι.f 0) ((CategoryTheory.InjectiveResolution.desc f I J).f 0) = CategoryTheory.CategoryStruct.comp f (I.ι.f 0) - CategoryTheory.InjectiveResolution.desc_commutes_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) {Z✝ : CochainComplex C ℕ} (h : I.cocomplex ⟶ Z✝) : CategoryTheory.CategoryStruct.comp J.ι (CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.desc f I J) h) = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) (CategoryTheory.CategoryStruct.comp I.ι h) - CategoryTheory.InjectiveResolution.desc_commutes_zero_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Z ⟶ Y) (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) {Z✝ : C} (h : I.cocomplex.X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (J.ι.f 0) (CategoryTheory.CategoryStruct.comp ((CategoryTheory.InjectiveResolution.desc f I J).f 0) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp f (I.ι.f 0)) h - CategoryTheory.InjectiveResolution.descHomotopyZeroOne 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) : I.cocomplex.X 2 ⟶ J.cocomplex.X 1 - CategoryTheory.InjectiveResolution.descHomotopyZeroZero 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) : I.cocomplex.X 1 ⟶ J.cocomplex.X 0 - CategoryTheory.InjectiveResolution.comp_descHomotopyZeroZero 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d 0 1) (CategoryTheory.InjectiveResolution.descHomotopyZeroZero f comm) = f.f 0 - CategoryTheory.InjectiveResolution.descHomotopyZero 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) : Homotopy f 0 - CategoryTheory.InjectiveResolution.comp_descHomotopyZeroZero_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) {Z✝ : C} (h : J.cocomplex.X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d 0 1) (CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.descHomotopyZeroZero f comm) h) = CategoryTheory.CategoryStruct.comp (f.f 0) h - CategoryTheory.InjectiveResolution.descHomotopy 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (g h : I.cocomplex ⟶ J.cocomplex) (g_comm : CategoryTheory.CategoryStruct.comp I.ι g = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) J.ι) (h_comm : CategoryTheory.CategoryStruct.comp I.ι h = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) J.ι) : Homotopy g h - CategoryTheory.InjectiveResolution.descFSucc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (I : CategoryTheory.InjectiveResolution Y) (J : CategoryTheory.InjectiveResolution Z) (n : ℕ) (g : J.cocomplex.X n ⟶ I.cocomplex.X n) (g' : J.cocomplex.X (n + 1) ⟶ I.cocomplex.X (n + 1)) (w : CategoryTheory.CategoryStruct.comp (J.cocomplex.d n (n + 1)) g' = CategoryTheory.CategoryStruct.comp g (I.cocomplex.d n (n + 1))) : (g'' : J.cocomplex.X (n + 2) ⟶ I.cocomplex.X (n + 2)) ×' CategoryTheory.CategoryStruct.comp (J.cocomplex.d (n + 1) (n + 2)) g'' = CategoryTheory.CategoryStruct.comp g' (I.cocomplex.d (n + 1) (n + 2)) - CategoryTheory.InjectiveResolution.descHomotopyZeroSucc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (n : ℕ) (g : I.cocomplex.X (n + 1) ⟶ J.cocomplex.X n) (g' : I.cocomplex.X (n + 2) ⟶ J.cocomplex.X (n + 1)) (w : f.f (n + 1) = CategoryTheory.CategoryStruct.comp (I.cocomplex.d (n + 1) (n + 2)) g' + CategoryTheory.CategoryStruct.comp g (J.cocomplex.d n (n + 1))) : I.cocomplex.X (n + 3) ⟶ J.cocomplex.X (n + 2) - CategoryTheory.InjectiveResolution.comp_descHomotopyZeroOne 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d 1 2) (CategoryTheory.InjectiveResolution.descHomotopyZeroOne f comm) = f.f 1 - CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.descHomotopyZeroZero f comm) (J.cocomplex.d 0 1) - CategoryTheory.InjectiveResolution.comp_descHomotopyZeroOne_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp I.ι f = 0) {Z✝ : C} (h : J.cocomplex.X 1 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d 1 2) (CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.descHomotopyZeroOne f comm) h) = CategoryTheory.CategoryStruct.comp (f.f 1 - CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.descHomotopyZeroZero f comm) (J.cocomplex.d 0 1)) h - CategoryTheory.InjectiveResolution.comp_descHomotopyZeroSucc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (n : ℕ) (g : I.cocomplex.X (n + 1) ⟶ J.cocomplex.X n) (g' : I.cocomplex.X (n + 2) ⟶ J.cocomplex.X (n + 1)) (w : f.f (n + 1) = CategoryTheory.CategoryStruct.comp (I.cocomplex.d (n + 1) (n + 2)) g' + CategoryTheory.CategoryStruct.comp g (J.cocomplex.d n (n + 1))) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d (n + 2) (n + 3)) (CategoryTheory.InjectiveResolution.descHomotopyZeroSucc f n g g' w) = f.f (n + 2) - CategoryTheory.CategoryStruct.comp g' (J.cocomplex.d (n + 1) (n + 2)) - CategoryTheory.InjectiveResolution.comp_descHomotopyZeroSucc_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {I : CategoryTheory.InjectiveResolution Y} {J : CategoryTheory.InjectiveResolution Z} (f : I.cocomplex ⟶ J.cocomplex) (n : ℕ) (g : I.cocomplex.X (n + 1) ⟶ J.cocomplex.X n) (g' : I.cocomplex.X (n + 2) ⟶ J.cocomplex.X (n + 1)) (w : f.f (n + 1) = CategoryTheory.CategoryStruct.comp (I.cocomplex.d (n + 1) (n + 2)) g' + CategoryTheory.CategoryStruct.comp g (J.cocomplex.d n (n + 1))) {Z✝ : C} (h : J.cocomplex.X (n + 2) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (I.cocomplex.d (n + 2) (n + 3)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.InjectiveResolution.descHomotopyZeroSucc f n g g' w) h) = CategoryTheory.CategoryStruct.comp (f.f (n + 2) - CategoryTheory.CategoryStruct.comp g' (J.cocomplex.d (n + 1) (n + 2))) h - CategoryTheory.InjectiveResolution.iso_inv_naturality 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) : CategoryTheory.CategoryStruct.comp I.iso.inv ((CategoryTheory.injectiveResolutions C).map f) = CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient C (ComplexShape.up ℕ)).map φ) J.iso.inv - CategoryTheory.InjectiveResolution.iso_hom_naturality 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) : CategoryTheory.CategoryStruct.comp ((CategoryTheory.injectiveResolutions C).map f) J.iso.hom = CategoryTheory.CategoryStruct.comp I.iso.hom ((HomotopyCategory.quotient C (ComplexShape.up ℕ)).map φ) - CategoryTheory.InjectiveResolution.iso_inv_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) {Z : HomotopyCategory C (ComplexShape.up ℕ)} (h : (CategoryTheory.injectiveResolutions C).obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp I.iso.inv (CategoryTheory.CategoryStruct.comp ((CategoryTheory.injectiveResolutions C).map f) h) = CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient C (ComplexShape.up ℕ)).map φ) (CategoryTheory.CategoryStruct.comp J.iso.inv h) - CategoryTheory.InjectiveResolution.iso_hom_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) {Z : HomotopyCategory C (ComplexShape.up ℕ)} (h : (HomotopyCategory.quotient C (ComplexShape.up ℕ)).obj J.cocomplex ⟶ Z) : CategoryTheory.CategoryStruct.comp ((CategoryTheory.injectiveResolutions C).map f) (CategoryTheory.CategoryStruct.comp J.iso.hom h) = CategoryTheory.CategoryStruct.comp I.iso.hom (CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient C (ComplexShape.up ℕ)).map φ) h) - CategoryTheory.InjectiveResolution.cochainComplexXIso 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Preadditive C] {X : C} (R : CategoryTheory.InjectiveResolution X) (n : ℤ) (k : ℕ) (h : ↑k = n) : R.cochainComplex.X n ≅ R.cocomplex.X k - CategoryTheory.InjectiveResolution.cochainComplex_d 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Preadditive C] {X : C} (R : CategoryTheory.InjectiveResolution X) (n₁ n₂ : ℤ) (k₁ k₂ : ℕ) (h₁ : ↑k₁ = n₁) (h₂ : ↑k₂ = n₂) : R.cochainComplex.d n₁ n₂ = CategoryTheory.CategoryStruct.comp (R.cochainComplexXIso n₁ k₁ h₁).hom (CategoryTheory.CategoryStruct.comp (R.cocomplex.d k₁ k₂) (R.cochainComplexXIso n₂ k₂ h₂).inv) - CategoryTheory.InjectiveResolution.cochainComplex_d_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Preadditive C] {X : C} (R : CategoryTheory.InjectiveResolution X) (n₁ n₂ : ℤ) (k₁ k₂ : ℕ) (h₁ : ↑k₁ = n₁) (h₂ : ↑k₂ = n₂) {Z : C} (h : R.cochainComplex.X n₂ ⟶ Z) : CategoryTheory.CategoryStruct.comp (R.cochainComplex.d n₁ n₂) h = CategoryTheory.CategoryStruct.comp (R.cochainComplexXIso n₁ k₁ h₁).hom (CategoryTheory.CategoryStruct.comp (R.cocomplex.d k₁ k₂) (CategoryTheory.CategoryStruct.comp (R.cochainComplexXIso n₂ k₂ h₂).inv h)) - CategoryTheory.InjectiveResolution.Hom.hom'_f 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} {R : CategoryTheory.InjectiveResolution X} {X' : C} {R' : CategoryTheory.InjectiveResolution X'} {f : X ⟶ X'} (φ : R.Hom R' f) (n : ℤ) (m : ℕ) (h : ↑m = n) : φ.hom'.f n = CategoryTheory.CategoryStruct.comp (R.cochainComplexXIso n m h).hom (CategoryTheory.CategoryStruct.comp (φ.hom.f m) (R'.cochainComplexXIso n m h).inv) - CategoryTheory.InjectiveResolution.Hom.hom'_f_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} {R : CategoryTheory.InjectiveResolution X} {X' : C} {R' : CategoryTheory.InjectiveResolution X'} {f : X ⟶ X'} (φ : R.Hom R' f) (n : ℤ) (m : ℕ) (h : ↑m = n) {Z : C} (h✝ : R'.cochainComplex.X n ⟶ Z) : CategoryTheory.CategoryStruct.comp (φ.hom'.f n) h✝ = CategoryTheory.CategoryStruct.comp (R.cochainComplexXIso n m h).hom (CategoryTheory.CategoryStruct.comp (φ.hom.f m) (CategoryTheory.CategoryStruct.comp (R'.cochainComplexXIso n m h).inv h✝)) - CategoryTheory.InjectiveResolution.ι'_f_zero 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Preadditive C] {X : C} (R : CategoryTheory.InjectiveResolution X) : R.ι'.f 0 = CategoryTheory.CategoryStruct.comp (HomologicalComplex.singleObjXSelf (ComplexShape.up ℤ) 0 X).hom (CategoryTheory.CategoryStruct.comp (R.ι.f 0) (R.cochainComplexXIso 0 0 CategoryTheory.InjectiveResolution.ι'_f_zero._proof_1).inv) - CategoryTheory.InjectiveResolution.ι'_f_zero_assoc 📋 Mathlib.CategoryTheory.Abelian.Injective.Extend
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Preadditive C] {X : C} (R : CategoryTheory.InjectiveResolution X) {Z : C} (h : R.cochainComplex.X 0 ⟶ Z) : CategoryTheory.CategoryStruct.comp (R.ι'.f 0) h = CategoryTheory.CategoryStruct.comp (HomologicalComplex.singleObjXSelf (ComplexShape.up ℤ) 0 X).hom (CategoryTheory.CategoryStruct.comp (R.ι.f 0) (CategoryTheory.CategoryStruct.comp (R.cochainComplexXIso 0 0 CategoryTheory.InjectiveResolution.ι'_f_zero._proof_1).inv h)) - CategoryTheory.InjectiveResolution.extMk_zero 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (m : ℕ) (hm : n + 1 = m) : R.extMk 0 m hm ⋯ = 0 - CategoryTheory.InjectiveResolution.extMk 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) : CategoryTheory.Abelian.Ext X Y n - CategoryTheory.InjectiveResolution.mk₀_comp_extMk 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) {X' : C} (g : X' ⟶ X) : (CategoryTheory.Abelian.Ext.mk₀ g).comp (R.extMk f m hm hf) ⋯ = R.extMk (CategoryTheory.CategoryStruct.comp g f) m hm ⋯ - CategoryTheory.InjectiveResolution.extMk_comp_mk₀ 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} {R : CategoryTheory.InjectiveResolution Y} {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) {Y' : C} {R' : CategoryTheory.InjectiveResolution Y'} {g : Y ⟶ Y'} (φ : R.Hom R' g) : (R.extMk f m hm hf).comp (CategoryTheory.Abelian.Ext.mk₀ g) ⋯ = R'.extMk (CategoryTheory.CategoryStruct.comp f (φ.hom.f n)) m hm ⋯ - CategoryTheory.InjectiveResolution.extMk_eq_zero_iff 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) (p : ℕ) (hp : p + 1 = n) : R.extMk f m hm hf = 0 ↔ ∃ g, CategoryTheory.CategoryStruct.comp g (R.cocomplex.d p n) = f - CategoryTheory.InjectiveResolution.extMk_surjective 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (α : CategoryTheory.Abelian.Ext X Y n) (m : ℕ) (hm : n + 1 = m) : ∃ f, ∃ (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0), R.extMk f m hm hf = α - CategoryTheory.InjectiveResolution.neg_extMk 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) : -R.extMk f m hm hf = R.extMk (-f) m hm ⋯ - CategoryTheory.InjectiveResolution.sub_extMk 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f g : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) (hg : CategoryTheory.CategoryStruct.comp g (R.cocomplex.d n m) = 0) : R.extMk f m hm hf - R.extMk g m hm hg = R.extMk (f - g) m hm ⋯ - CategoryTheory.InjectiveResolution.add_extMk 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f g : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) (hg : CategoryTheory.CategoryStruct.comp g (R.cocomplex.d n m) = 0) : R.extMk f m hm hf + R.extMk g m hm hg = R.extMk (f + g) m hm ⋯ - CategoryTheory.InjectiveResolution.extEquivCohomologyClass_extMk 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) : R.extEquivCohomologyClass (R.extMk f m hm hf) = CochainComplex.HomComplex.CohomologyClass.mk (CochainComplex.HomComplex.Cocycle.fromSingleMk (CategoryTheory.CategoryStruct.comp f (R.cochainComplexXIso (↑n) n ⋯).inv) ⋯ ↑m ⋯ ⋯) - CategoryTheory.InjectiveResolution.extMk_hom 📋 Mathlib.CategoryTheory.Abelian.Injective.Ext
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasExt C] {X Y : C} (R : CategoryTheory.InjectiveResolution Y) [HasDerivedCategory C] {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryTheory.CategoryStruct.comp f (R.cocomplex.d n m) = 0) : (R.extMk f m hm hf).hom = (CategoryTheory.ShiftedHom.mk₀ 0 ⋯ ((DerivedCategory.singleFunctorIsoCompQ C 0).hom.app X)).comp ((CategoryTheory.ShiftedHom.map (CochainComplex.HomComplex.Cocycle.equivHomShift.symm (CochainComplex.HomComplex.Cocycle.fromSingleMk (CategoryTheory.CategoryStruct.comp f (R.cochainComplexXIso (↑n) n ⋯).inv) ⋯ ↑m ⋯ ⋯)) DerivedCategory.Q).comp (CategoryTheory.ShiftedHom.mk₀ 0 ⋯ (CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (DerivedCategory.Q.map R.ι')) ((DerivedCategory.singleFunctorIsoCompQ C 0).inv.app Y))) ⋯) ⋯ - CategoryTheory.InjectiveResolution.isoRightDerivedObj 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X : C} (I : CategoryTheory.InjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) : (F.rightDerived n).obj X ≅ (HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).obj ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj I.cocomplex) - CategoryTheory.InjectiveResolution.toRightDerivedZero' 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.Abelian D] {X : C} (P : CategoryTheory.InjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] : F.obj X ⟶ ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).cycles 0 - CategoryTheory.instIsIsoToRightDerivedZero' 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.Abelian D] (F : CategoryTheory.Functor C D) [F.Additive] [CategoryTheory.Limits.PreservesFiniteLimits F] {X : C} (P : CategoryTheory.InjectiveResolution X) : CategoryTheory.IsIso (P.toRightDerivedZero' F) - CategoryTheory.InjectiveResolution.instIsIsoToRightDerivedZero'Self 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.Abelian D] (F : CategoryTheory.Functor C D) [F.Additive] (X : C) [CategoryTheory.Injective X] : CategoryTheory.IsIso ((CategoryTheory.InjectiveResolution.self X).toRightDerivedZero' F) - CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X : C} (I : CategoryTheory.InjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] : F.rightDerivedToHomotopyCategory.obj X ≅ ((F.mapHomologicalComplex (ComplexShape.up ℕ)).comp (HomotopyCategory.quotient D (ComplexShape.up ℕ))).obj I.cocomplex - CategoryTheory.InjectiveResolution.toRightDerivedZero'_comp_iCycles 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian D] {C : Type u_2} [CategoryTheory.Category.{v_2, u_2} C] [CategoryTheory.Abelian C] {X : C} (P : CategoryTheory.InjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] : CategoryTheory.CategoryStruct.comp (P.toRightDerivedZero' F) (((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).iCycles 0) = F.map (P.ι.f 0) - CategoryTheory.InjectiveResolution.toRightDerivedZero'_comp_iCycles_assoc 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian D] {C : Type u_2} [CategoryTheory.Category.{v_2, u_2} C] [CategoryTheory.Abelian C] {X : C} (P : CategoryTheory.InjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] {Z : D} (h : ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).X 0 ⟶ Z) : CategoryTheory.CategoryStruct.comp (P.toRightDerivedZero' F) (CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).iCycles 0) h) = CategoryTheory.CategoryStruct.comp (F.map (P.ι.f 0)) h - CategoryTheory.InjectiveResolution.rightDerived_app_eq 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {F G : CategoryTheory.Functor C D} [F.Additive] [G.Additive] (α : F ⟶ G) {X : C} (P : CategoryTheory.InjectiveResolution X) (n : ℕ) : (CategoryTheory.NatTrans.rightDerived α n).app X = CategoryTheory.CategoryStruct.comp (P.isoRightDerivedObj F n).hom (CategoryTheory.CategoryStruct.comp ((HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).map ((CategoryTheory.NatTrans.mapHomologicalComplex α (ComplexShape.up ℕ)).app P.cocomplex)) (P.isoRightDerivedObj G n).inv) - CategoryTheory.Functor.rightDerived_map_eq 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) {X Y : C} (f : X ⟶ Y) {P : CategoryTheory.InjectiveResolution X} {Q : CategoryTheory.InjectiveResolution Y} (g : P.cocomplex ⟶ Q.cocomplex) (w : CategoryTheory.CategoryStruct.comp P.ι g = CategoryTheory.CategoryStruct.comp ((CochainComplex.single₀ C).map f) Q.ι) : (F.rightDerived n).map f = CategoryTheory.CategoryStruct.comp (P.isoRightDerivedObj F n).hom (CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.up ℕ)).comp (HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n)).map g) (Q.isoRightDerivedObj F n).inv) - CategoryTheory.InjectiveResolution.isoRightDerivedObj_hom_naturality 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) : CategoryTheory.CategoryStruct.comp ((F.rightDerived n).map f) (J.isoRightDerivedObj F n).hom = CategoryTheory.CategoryStruct.comp (I.isoRightDerivedObj F n).hom (((F.mapHomologicalComplex (ComplexShape.up ℕ)).comp (HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n)).map φ) - CategoryTheory.InjectiveResolution.isoRightDerivedObj_inv_naturality 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) : CategoryTheory.CategoryStruct.comp (I.isoRightDerivedObj F n).inv ((F.rightDerived n).map f) = CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.up ℕ)).comp (HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n)).map φ) (J.isoRightDerivedObj F n).inv - CategoryTheory.InjectiveResolution.toRightDerivedZero_eq 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X : C} (I : CategoryTheory.InjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] : F.toRightDerivedZero.app X = CategoryTheory.CategoryStruct.comp (I.toRightDerivedZero' F) (CategoryTheory.CategoryStruct.comp (CochainComplex.isoHomologyπ₀ ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj I.cocomplex)).hom (I.isoRightDerivedObj F 0).inv) - CategoryTheory.InjectiveResolution.isoRightDerivedObj_hom_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) {Z : D} (h : (HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).obj ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj J.cocomplex) ⟶ Z) : CategoryTheory.CategoryStruct.comp ((F.rightDerived n).map f) (CategoryTheory.CategoryStruct.comp (J.isoRightDerivedObj F n).hom h) = CategoryTheory.CategoryStruct.comp (I.isoRightDerivedObj F n).hom (CategoryTheory.CategoryStruct.comp ((HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).map ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ)) h) - CategoryTheory.InjectiveResolution.isoRightDerivedObj_inv_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) {Z : D} (h : (F.rightDerived n).obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (I.isoRightDerivedObj F n).inv (CategoryTheory.CategoryStruct.comp ((F.rightDerived n).map f) h) = CategoryTheory.CategoryStruct.comp ((HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).map ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ)) (CategoryTheory.CategoryStruct.comp (J.isoRightDerivedObj F n).inv h) - CategoryTheory.InjectiveResolution.toRightDerivedZero'_naturality 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian D] {C : Type u_2} [CategoryTheory.Category.{v_2, u_2} C] [CategoryTheory.Abelian C] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.InjectiveResolution X) (Q : CategoryTheory.InjectiveResolution Y) (φ : P.cocomplex ⟶ Q.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (P.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (Q.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] : CategoryTheory.CategoryStruct.comp (F.map f) (Q.toRightDerivedZero' F) = CategoryTheory.CategoryStruct.comp (P.toRightDerivedZero' F) (HomologicalComplex.cyclesMap ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ) 0) - CategoryTheory.InjectiveResolution.toRightDerivedZero'_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian D] {C : Type u_2} [CategoryTheory.Category.{v_2, u_2} C] [CategoryTheory.Abelian C] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.InjectiveResolution X) (Q : CategoryTheory.InjectiveResolution Y) (φ : P.cocomplex ⟶ Q.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (P.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (Q.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] {Z : D} (h : ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj Q.cocomplex).cycles 0 ⟶ Z) : CategoryTheory.CategoryStruct.comp (F.map f) (CategoryTheory.CategoryStruct.comp (Q.toRightDerivedZero' F) h) = CategoryTheory.CategoryStruct.comp (P.toRightDerivedZero' F) (CategoryTheory.CategoryStruct.comp (HomologicalComplex.cyclesMap ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ) 0) h) - CategoryTheory.InjectiveResolution.rightDerivedToHomotopyCategory_app_eq 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {F G : CategoryTheory.Functor C D} [F.Additive] [G.Additive] (α : F ⟶ G) {X : C} (P : CategoryTheory.InjectiveResolution X) : (CategoryTheory.NatTrans.rightDerivedToHomotopyCategory α).app X = CategoryTheory.CategoryStruct.comp (P.isoRightDerivedToHomotopyCategoryObj F).hom (CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient D (ComplexShape.up ℕ)).map ((CategoryTheory.NatTrans.mapHomologicalComplex α (ComplexShape.up ℕ)).app P.cocomplex)) (P.isoRightDerivedToHomotopyCategoryObj G).inv) - CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_inv_naturality 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] : CategoryTheory.CategoryStruct.comp (I.isoRightDerivedToHomotopyCategoryObj F).inv (F.rightDerivedToHomotopyCategory.map f) = CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.up ℕ)).comp (HomotopyCategory.quotient D (ComplexShape.up ℕ))).map φ) (J.isoRightDerivedToHomotopyCategoryObj F).inv - CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_hom_naturality 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] : CategoryTheory.CategoryStruct.comp (F.rightDerivedToHomotopyCategory.map f) (J.isoRightDerivedToHomotopyCategoryObj F).hom = CategoryTheory.CategoryStruct.comp (I.isoRightDerivedToHomotopyCategoryObj F).hom (((F.mapHomologicalComplex (ComplexShape.up ℕ)).comp (HomotopyCategory.quotient D (ComplexShape.up ℕ))).map φ) - CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_inv_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] {Z : HomotopyCategory D (ComplexShape.up ℕ)} (h : F.rightDerivedToHomotopyCategory.obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp (I.isoRightDerivedToHomotopyCategoryObj F).inv (CategoryTheory.CategoryStruct.comp (F.rightDerivedToHomotopyCategory.map f) h) = CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient D (ComplexShape.up ℕ)).map ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ)) (CategoryTheory.CategoryStruct.comp (J.isoRightDerivedToHomotopyCategoryObj F).inv h) - CategoryTheory.InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_hom_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.RightDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasInjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (I : CategoryTheory.InjectiveResolution X) (J : CategoryTheory.InjectiveResolution Y) (φ : I.cocomplex ⟶ J.cocomplex) (comm : CategoryTheory.CategoryStruct.comp (I.ι.f 0) (φ.f 0) = CategoryTheory.CategoryStruct.comp f (J.ι.f 0)) (F : CategoryTheory.Functor C D) [F.Additive] {Z : HomotopyCategory D (ComplexShape.up ℕ)} (h : (HomotopyCategory.quotient D (ComplexShape.up ℕ)).obj ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj J.cocomplex) ⟶ Z) : CategoryTheory.CategoryStruct.comp (F.rightDerivedToHomotopyCategory.map f) (CategoryTheory.CategoryStruct.comp (J.isoRightDerivedToHomotopyCategoryObj F).hom h) = CategoryTheory.CategoryStruct.comp (I.isoRightDerivedToHomotopyCategoryObj F).hom (CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient D (ComplexShape.up ℕ)).map ((F.mapHomologicalComplex (ComplexShape.up ℕ)).map φ)) 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