Loogle!
Result
Found 554 declarations mentioning ChainComplex. Of these, only the first 200 are shown.
- ChainComplex 📋 Mathlib.Algebra.Homology.HomologicalComplex
(V : Type u) [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (α : Type u_2) [AddRightCancelSemigroup α] [One α] : Type (max (max u_2 u) v) - ChainComplex.mk' 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d : X₁ ⟶ X₀) (succ' : {X₀ X₁ : V} → (f : X₁ ⟶ X₀) → (X₂ : V) ×' (d : X₂ ⟶ X₁) ×' CategoryTheory.CategoryStruct.comp d f = 0) : ChainComplex V ℕ - ChainComplex.mk 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₁ ⟶ X₀) (d₁ : X₂ ⟶ X₁) (s : CategoryTheory.CategoryStruct.comp d₁ d₀ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₃ : V) ×' (d₂ : X₃ ⟶ S.X₁) ×' CategoryTheory.CategoryStruct.comp d₂ S.f = 0) : ChainComplex V ℕ - ChainComplex.of 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] [DecidableEq α] (X : α → V) (d : (n : α) → X (n + 1) ⟶ X n) (sq : ∀ (n : α), CategoryTheory.CategoryStruct.comp (d (n + 1)) (d n) = 0) : ChainComplex V α - ChainComplex.ofHom 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] {X Y : ChainComplex V α} (f : (i : α) → X.X i ⟶ Y.X i) (comm : ∀ (i : α), CategoryTheory.CategoryStruct.comp (f (i + 1)) (Y.d (i + 1) i) = CategoryTheory.CategoryStruct.comp (X.d (i + 1) i) (f i)) : X ⟶ Y - ChainComplex.mkHom 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : CategoryTheory.CategoryStruct.comp one (Q.d 1 0) = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' CategoryTheory.CategoryStruct.comp f' (Q.d (n + 1) n) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f) → (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 2) (n + 1)) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst) : P ⟶ Q - ChainComplex.mkHom_f_0 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : CategoryTheory.CategoryStruct.comp one (Q.d 1 0) = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' CategoryTheory.CategoryStruct.comp f' (Q.d (n + 1) n) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f) → (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 2) (n + 1)) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst) : (P.mkHom Q zero one one_zero_comm succ).f 0 = zero - ChainComplex.mkHom_f_1 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : CategoryTheory.CategoryStruct.comp one (Q.d 1 0) = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' CategoryTheory.CategoryStruct.comp f' (Q.d (n + 1) n) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f) → (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 2) (n + 1)) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst) : (P.mkHom Q zero one one_zero_comm succ).f 1 = one - ChainComplex.mkHomAux 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : CategoryTheory.CategoryStruct.comp one (Q.d 1 0) = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' CategoryTheory.CategoryStruct.comp f' (Q.d (n + 1) n) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f) → (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 2) (n + 1)) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst) (n : ℕ) : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' CategoryTheory.CategoryStruct.comp f' (Q.d (n + 1) n) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f - ChainComplex.mkHom_f_succ_succ 📋 Mathlib.Algebra.Homology.HomologicalComplex
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : CategoryTheory.CategoryStruct.comp one (Q.d 1 0) = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' CategoryTheory.CategoryStruct.comp f' (Q.d (n + 1) n) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f) → (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 2) (n + 1)) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst) (n : ℕ) : (P.mkHom Q zero one one_zero_comm succ).f (n + 2) = (succ n ⟨(P.mkHom Q zero one one_zero_comm succ).f n, ⟨(P.mkHom Q zero one one_zero_comm succ).f (n + 1), ⋯⟩⟩).fst - ChainComplex.single₀ 📋 Mathlib.Algebra.Homology.Single
(V : Type u) [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] : CategoryTheory.Functor V (ChainComplex V ℕ) - ChainComplex.single₀_obj_zero 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] (A : V) : ((ChainComplex.single₀ V).obj A).X 0 = A - ChainComplex.fromSingle₀Equiv 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] (C : ChainComplex V ℕ) (X : V) : ((ChainComplex.single₀ V).obj X ⟶ C) ≃ (X ⟶ C.X 0) - ChainComplex.single₀_map_f_zero 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] {A B : V} (f : A ⟶ B) : ((ChainComplex.single₀ V).map f).f 0 = f - ChainComplex.toSingle₀Equiv 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] (C : ChainComplex V ℕ) (X : V) : (C ⟶ (ChainComplex.single₀ V).obj X) ≃ { f // CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0 } - ChainComplex.fromSingle₀Equiv_symm_apply_f_zero 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] {C : ChainComplex V ℕ} {X : V} (f : X ⟶ C.X 0) : ((C.fromSingle₀Equiv X).symm f).f 0 = f - ChainComplex.fromSingle₀Equiv_apply 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] (C : ChainComplex V ℕ) (X : V) (f : (ChainComplex.single₀ V).obj X ⟶ C) : (C.fromSingle₀Equiv X) f = f.f 0 - ChainComplex.fromSingle₀Equiv_symm_apply_f_succ 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] {C : ChainComplex V ℕ} {X : V} (f : X ⟶ C.X 0) (n : ℕ) : ((C.fromSingle₀Equiv X).symm f).f (n + 1) = 0 - ChainComplex.toSingle₀Equiv_apply_coe 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] (C : ChainComplex V ℕ) (X : V) (φ : C ⟶ (ChainComplex.single₀ V).obj X) : ↑((C.toSingle₀Equiv X) φ) = φ.f 0 - ChainComplex.toSingle₀Equiv_symm_apply_f_zero 📋 Mathlib.Algebra.Homology.Single
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] {C : ChainComplex V ℕ} {X : V} (f : C.X 0 ⟶ X) (hf : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) : ((C.toSingle₀Equiv X).symm ⟨f, hf⟩).f 0 = f - ChainComplex.cycles₀Iso 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (K : ChainComplex C ℕ) [HomologicalComplex.HasHomology K 0] : HomologicalComplex.cycles K 0 ≅ K.X 0 - ChainComplex.isoHomologyι₀ 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (K : ChainComplex C ℕ) [HomologicalComplex.HasHomology K 0] : HomologicalComplex.homology K 0 ≅ HomologicalComplex.opcycles K 0 - ChainComplex.isIso_iCycles₀ 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (K : ChainComplex C ℕ) [HomologicalComplex.HasHomology K 0] : CategoryTheory.IsIso (HomologicalComplex.iCycles K 0) - ChainComplex.isIso_homologyι₀ 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (K : ChainComplex C ℕ) [HomologicalComplex.HasHomology K 0] : CategoryTheory.IsIso (HomologicalComplex.homologyι K 0) - ChainComplex.isoHomologyι₀_inv_naturality 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K L : ChainComplex C ℕ} (φ : K ⟶ L) [HomologicalComplex.HasHomology K 0] [HomologicalComplex.HasHomology L 0] : CategoryTheory.CategoryStruct.comp K.isoHomologyι₀.inv (HomologicalComplex.homologyMap φ 0) = CategoryTheory.CategoryStruct.comp (HomologicalComplex.opcyclesMap φ 0) L.isoHomologyι₀.inv - ChainComplex.isIso_descOpcycles_iff 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] (K : ChainComplex C ℕ) {X : C} (φ : K.X 0 ⟶ X) [HomologicalComplex.HasHomology K 0] (hφ : CategoryTheory.CategoryStruct.comp (K.d 1 0) φ = 0) : CategoryTheory.IsIso (HomologicalComplex.descOpcycles K φ 1 ChainComplex.isIso_descOpcycles_iff._proof_1 hφ) ↔ { X₁ := K.X 1, X₂ := K.X 0, X₃ := X, f := K.d 1 0, g := φ, zero := hφ }.Exact ∧ CategoryTheory.Epi φ - ChainComplex.isoHomologyι₀_inv_naturality_assoc 📋 Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K L : ChainComplex C ℕ} (φ : K ⟶ L) [HomologicalComplex.HasHomology K 0] [HomologicalComplex.HasHomology L 0] {Z : C} (h : HomologicalComplex.homology L 0 ⟶ Z) : CategoryTheory.CategoryStruct.comp K.isoHomologyι₀.inv (CategoryTheory.CategoryStruct.comp (HomologicalComplex.homologyMap φ 0) h) = CategoryTheory.CategoryStruct.comp (HomologicalComplex.opcyclesMap φ 0) (CategoryTheory.CategoryStruct.comp L.isoHomologyι₀.inv h) - ChainComplex.nullHomotopicMap_f_zero 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {K L : ChainComplex V ℕ} (h : (i j : ℕ) → K.X i ⟶ L.X j) : (Homotopy.nullHomotopicMap h).f 0 = CategoryTheory.CategoryStruct.comp (h 0 1) (L.d 1 0) - ChainComplex.nullHomotopicMap_f_zero_assoc 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {K L : ChainComplex V ℕ} (h : (i j : ℕ) → K.X i ⟶ L.X j) {Z : V} (h✝ : L.X 0 ⟶ Z) : CategoryTheory.CategoryStruct.comp ((Homotopy.nullHomotopicMap h).f 0) h✝ = CategoryTheory.CategoryStruct.comp (h 0 1) (CategoryTheory.CategoryStruct.comp (L.d 1 0) h✝) - ChainComplex.nullHomotopicMap_f_succ 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {K L : ChainComplex V ℕ} (h : (i j : ℕ) → K.X i ⟶ L.X j) (n : ℕ) : (Homotopy.nullHomotopicMap h).f (n + 1) = CategoryTheory.CategoryStruct.comp (K.d (n + 1) n) (h n (n + 1)) + CategoryTheory.CategoryStruct.comp (h (n + 1) (n + 2)) (L.d (n + 2) (n + 1)) - dNext_nat 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] (C D : ChainComplex V ℕ) (i : ℕ) (f : (i j : ℕ) → C.X i ⟶ D.X j) : (dNext i) f = CategoryTheory.CategoryStruct.comp (C.d i (i - 1)) (f (i - 1) i) - Homotopy.prevD_chainComplex 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (f : (i j : ℕ) → P.X i ⟶ Q.X j) (j : ℕ) : (prevD j) f = CategoryTheory.CategoryStruct.comp (f j (j + 1)) (Q.d (j + 1) j) - Homotopy.dNext_zero_chainComplex 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (f : (i j : ℕ) → P.X i ⟶ Q.X j) : (dNext 0) f = 0 - Homotopy.dNext_succ_chainComplex 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (f : (i j : ℕ) → P.X i ⟶ Q.X j) (i : ℕ) : (dNext (i + 1)) f = CategoryTheory.CategoryStruct.comp (P.d (i + 1) i) (f i (i + 1)) - Homotopy.mkInductive 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (e : P ⟶ Q) (zero : P.X 0 ⟶ Q.X 1) (comm_zero : e.f 0 = CategoryTheory.CategoryStruct.comp zero (Q.d 1 0)) (one : P.X 1 ⟶ Q.X 2) (comm_one : e.f 1 = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero + CategoryTheory.CategoryStruct.comp one (Q.d 2 1)) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1))) → (f'' : P.X (n + 2) ⟶ Q.X (n + 3)) ×' e.f (n + 2) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst + CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 3) (n + 2))) : Homotopy e 0 - Homotopy.mkInductiveAux₂ 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (e : P ⟶ Q) (zero : P.X 0 ⟶ Q.X 1) (comm_zero : e.f 0 = CategoryTheory.CategoryStruct.comp zero (Q.d 1 0)) (one : P.X 1 ⟶ Q.X 2) (comm_one : e.f 1 = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero + CategoryTheory.CategoryStruct.comp one (Q.d 2 1)) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1))) → (f'' : P.X (n + 2) ⟶ Q.X (n + 3)) ×' e.f (n + 2) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst + CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 3) (n + 2))) (n : ℕ) : (f : HomologicalComplex.xNext P n ⟶ Q.X n) ×' (f' : P.X n ⟶ HomologicalComplex.xPrev Q n) ×' e.f n = CategoryTheory.CategoryStruct.comp (HomologicalComplex.dFrom P n) f + CategoryTheory.CategoryStruct.comp f' (HomologicalComplex.dTo Q n) - Homotopy.mkInductiveAux₁ 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (e : P ⟶ Q) (zero : P.X 0 ⟶ Q.X 1) (one : P.X 1 ⟶ Q.X 2) (comm_one : e.f 1 = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero + CategoryTheory.CategoryStruct.comp one (Q.d 2 1)) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1))) → (f'' : P.X (n + 2) ⟶ Q.X (n + 3)) ×' e.f (n + 2) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst + CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 3) (n + 2))) (n : ℕ) : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1)) - Homotopy.mkInductiveAux₂_zero 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (e : P ⟶ Q) (zero : P.X 0 ⟶ Q.X 1) (comm_zero : e.f 0 = CategoryTheory.CategoryStruct.comp zero (Q.d 1 0)) (one : P.X 1 ⟶ Q.X 2) (comm_one : e.f 1 = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero + CategoryTheory.CategoryStruct.comp one (Q.d 2 1)) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1))) → (f'' : P.X (n + 2) ⟶ Q.X (n + 3)) ×' e.f (n + 2) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst + CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 3) (n + 2))) : Homotopy.mkInductiveAux₂ e zero comm_zero one comm_one succ 0 = ⟨0, ⟨CategoryTheory.CategoryStruct.comp zero (HomologicalComplex.xPrevIso Q ⋯).inv, ⋯⟩⟩ - Homotopy.mkInductiveAux₃ 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (e : P ⟶ Q) (zero : P.X 0 ⟶ Q.X 1) (comm_zero : e.f 0 = CategoryTheory.CategoryStruct.comp zero (Q.d 1 0)) (one : P.X 1 ⟶ Q.X 2) (comm_one : e.f 1 = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero + CategoryTheory.CategoryStruct.comp one (Q.d 2 1)) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1))) → (f'' : P.X (n + 2) ⟶ Q.X (n + 3)) ×' e.f (n + 2) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst + CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 3) (n + 2))) (i j : ℕ) (h : i + 1 = j) : CategoryTheory.CategoryStruct.comp (Homotopy.mkInductiveAux₂ e zero comm_zero one comm_one succ i).snd.fst (HomologicalComplex.xPrevIso Q h).hom = CategoryTheory.CategoryStruct.comp (HomologicalComplex.xNextIso P h).inv (Homotopy.mkInductiveAux₂ e zero comm_zero one comm_one succ j).fst - Homotopy.mkInductiveAux₂_add_one 📋 Mathlib.Algebra.Homology.Homotopy
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {P Q : ChainComplex V ℕ} (e : P ⟶ Q) (zero : P.X 0 ⟶ Q.X 1) (comm_zero : e.f 0 = CategoryTheory.CategoryStruct.comp zero (Q.d 1 0)) (one : P.X 1 ⟶ Q.X 2) (comm_one : e.f 1 = CategoryTheory.CategoryStruct.comp (P.d 1 0) zero + CategoryTheory.CategoryStruct.comp one (Q.d 2 1)) (succ : (n : ℕ) → (p : (f : P.X n ⟶ Q.X (n + 1)) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 2)) ×' e.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.d (n + 1) n) f + CategoryTheory.CategoryStruct.comp f' (Q.d (n + 2) (n + 1))) → (f'' : P.X (n + 2) ⟶ Q.X (n + 3)) ×' e.f (n + 2) = CategoryTheory.CategoryStruct.comp (P.d (n + 2) (n + 1)) p.snd.fst + CategoryTheory.CategoryStruct.comp f'' (Q.d (n + 3) (n + 2))) (n : ℕ) : Homotopy.mkInductiveAux₂ e zero comm_zero one comm_one succ (n + 1) = ⟨CategoryTheory.CategoryStruct.comp (HomologicalComplex.xNextIso P ⋯).hom (Homotopy.mkInductiveAux₁ e zero one comm_one succ n).fst, ⟨CategoryTheory.CategoryStruct.comp (Homotopy.mkInductiveAux₁ e zero one comm_one succ n).snd.fst (HomologicalComplex.xPrevIso Q ⋯).inv, ⋯⟩⟩ - ChainComplex.quasiIsoAt₀_iff 📋 Mathlib.Algebra.Homology.QuasiIso
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K L : ChainComplex C ℕ} (f : K ⟶ L) [HomologicalComplex.HasHomology K 0] [HomologicalComplex.HasHomology L 0] [(HomologicalComplex.sc' K 1 0 0).HasHomology] [(HomologicalComplex.sc' L 1 0 0).HasHomology] : QuasiIsoAt f 0 ↔ CategoryTheory.ShortComplex.QuasiIso ((HomologicalComplex.shortComplexFunctor' C (ComplexShape.down ℕ) 1 0 0).map f) - CochainComplex.instIsStrictlyLEExtendNatIntEmbeddingDownNatOfNat 📋 Mathlib.Algebra.Homology.Embedding.CochainComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (X : ChainComplex C ℕ) : CochainComplex.IsStrictlyLE (HomologicalComplex.extend X ComplexShape.embeddingDownNat) 0 - ChainComplex.exactAt_succ_single_obj 📋 Mathlib.Algebra.Homology.SingleHomology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (A : C) (n : ℕ) : HomologicalComplex.ExactAt ((ChainComplex.single₀ C).obj A) (n + 1) - CategoryTheory.Abelian.LeftResolution.chainComplex 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) (X : A) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] : ChainComplex C ℕ - CategoryTheory.Abelian.LeftResolution.chainComplexFunctor 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] : CategoryTheory.Functor A (ChainComplex C ℕ) - CategoryTheory.Abelian.LeftResolution.chainComplexMap 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) {X Y : A} (f : X ⟶ Y) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] : Λ.chainComplex X ⟶ Λ.chainComplex Y - CategoryTheory.Abelian.LeftResolution.chainComplexMap_id 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) (X : A) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] : Λ.chainComplexMap (CategoryTheory.CategoryStruct.id X) = CategoryTheory.CategoryStruct.id (Λ.chainComplex X) - CategoryTheory.Abelian.LeftResolution.chainComplexMap_comp 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) {X Y Z : A} (f : X ⟶ Y) (g : Y ⟶ Z) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] : Λ.chainComplexMap (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (Λ.chainComplexMap f) (Λ.chainComplexMap g) - CategoryTheory.Abelian.LeftResolution.chainComplexMap_zero 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) (X Y : A) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] [Λ.F.PreservesZeroMorphisms] : Λ.chainComplexMap 0 = 0 - CategoryTheory.Abelian.LeftResolution.chainComplexMap_comp_assoc 📋 Mathlib.Algebra.Homology.LeftResolution.Basic
{A : Type u_1} {C : Type u_2} [CategoryTheory.Category.{v_1, u_2} C] [CategoryTheory.Category.{v_2, u_1} A] {ι : CategoryTheory.Functor C A} (Λ : CategoryTheory.Abelian.LeftResolution ι) {X Y Z : A} (f : X ⟶ Y) (g : Y ⟶ Z) [ι.Full] [ι.Faithful] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Abelian A] {Z✝ : ChainComplex C ℕ} (h : Λ.chainComplex Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (Λ.chainComplexMap (CategoryTheory.CategoryStruct.comp f g)) h = CategoryTheory.CategoryStruct.comp (Λ.chainComplexMap f) (CategoryTheory.CategoryStruct.comp (Λ.chainComplexMap g) h) - AlgebraicTopology.NormalizedMooreComplex.obj 📋 Mathlib.AlgebraicTopology.MooreComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] (X : CategoryTheory.SimplicialObject C) : ChainComplex C ℕ - AlgebraicTopology.normalizedMooreComplex 📋 Mathlib.AlgebraicTopology.MooreComplex
(C : Type u_1) [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] : CategoryTheory.Functor (CategoryTheory.SimplicialObject C) (ChainComplex C ℕ) - AlgebraicTopology.normalizedMooreComplex_obj 📋 Mathlib.AlgebraicTopology.MooreComplex
(C : Type u_1) [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] (X : CategoryTheory.SimplicialObject C) : (AlgebraicTopology.normalizedMooreComplex C).obj X = AlgebraicTopology.NormalizedMooreComplex.obj X - AlgebraicTopology.NormalizedMooreComplex.map 📋 Mathlib.AlgebraicTopology.MooreComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] {X Y : CategoryTheory.SimplicialObject C} (f : X ⟶ Y) : AlgebraicTopology.NormalizedMooreComplex.obj X ⟶ AlgebraicTopology.NormalizedMooreComplex.obj Y - AlgebraicTopology.normalizedMooreComplex_map 📋 Mathlib.AlgebraicTopology.MooreComplex
(C : Type u_1) [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] {X✝ Y✝ : CategoryTheory.SimplicialObject C} (f : X✝ ⟶ Y✝) : (AlgebraicTopology.normalizedMooreComplex C).map f = AlgebraicTopology.NormalizedMooreComplex.map f - AlgebraicTopology.normalizedMooreComplex_objD 📋 Mathlib.AlgebraicTopology.MooreComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] (X : CategoryTheory.SimplicialObject C) (n : ℕ) : ((AlgebraicTopology.normalizedMooreComplex C).obj X).d (n + 1) n = AlgebraicTopology.NormalizedMooreComplex.objD X n - AlgebraicTopology.AlternatingFaceMapComplex.obj 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] (X : CategoryTheory.SimplicialObject C) : ChainComplex C ℕ - AlgebraicTopology.alternatingFaceMapComplex 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
(C : Type u_1) [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] : CategoryTheory.Functor (CategoryTheory.SimplicialObject C) (ChainComplex C ℕ) - AlgebraicTopology.instPreservesMonomorphismsSimplicialObjectChainComplexNatAlternatingFaceMapComplexOfHasPullbacks 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasPullbacks C] : (AlgebraicTopology.alternatingFaceMapComplex C).PreservesMonomorphisms - AlgebraicTopology.instAdditiveSimplicialObjectChainComplexNatAlternatingFaceMapComplex 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] : (AlgebraicTopology.alternatingFaceMapComplex C).Additive - AlgebraicTopology.alternatingFaceMapComplex_obj_X 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] (X : CategoryTheory.SimplicialObject C) (n : ℕ) : ((AlgebraicTopology.alternatingFaceMapComplex C).obj X).X n = X.obj (Opposite.op { len := n }) - AlgebraicTopology.AlternatingFaceMapComplex.map 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {X Y : CategoryTheory.SimplicialObject C} (f : X ⟶ Y) : AlgebraicTopology.AlternatingFaceMapComplex.obj X ⟶ AlgebraicTopology.AlternatingFaceMapComplex.obj Y - AlgebraicTopology.inclusionOfMooreComplexMap 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{A : Type u_2} [CategoryTheory.Category.{v_2, u_2} A] [CategoryTheory.Abelian A] (X : CategoryTheory.SimplicialObject A) : (AlgebraicTopology.normalizedMooreComplex A).obj X ⟶ (AlgebraicTopology.alternatingFaceMapComplex A).obj X - AlgebraicTopology.inclusionOfMooreComplex 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
(A : Type u_2) [CategoryTheory.Category.{v_2, u_2} A] [CategoryTheory.Abelian A] : AlgebraicTopology.normalizedMooreComplex A ⟶ AlgebraicTopology.alternatingFaceMapComplex A - AlgebraicTopology.inclusionOfMooreComplex_app 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
(A : Type u_2) [CategoryTheory.Category.{v_2, u_2} A] [CategoryTheory.Abelian A] (X : CategoryTheory.SimplicialObject A) : (AlgebraicTopology.inclusionOfMooreComplex A).app X = AlgebraicTopology.inclusionOfMooreComplexMap X - AlgebraicTopology.alternatingFaceMapComplex_obj_d 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] (X : CategoryTheory.SimplicialObject C) (n : ℕ) : ((AlgebraicTopology.alternatingFaceMapComplex C).obj X).d (n + 1) n = AlgebraicTopology.AlternatingFaceMapComplex.objD X n - AlgebraicTopology.AlternatingFaceMapComplex.ε 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] : CategoryTheory.SimplicialObject.Augmented.drop.comp (AlgebraicTopology.alternatingFaceMapComplex C) ⟶ CategoryTheory.SimplicialObject.Augmented.point.comp (ChainComplex.single₀ C) - AlgebraicTopology.map_alternatingFaceMapComplex 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {D : Type u_2} [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Preadditive D] (F : CategoryTheory.Functor C D) [F.Additive] : (AlgebraicTopology.alternatingFaceMapComplex C).comp (F.mapHomologicalComplex (ComplexShape.down ℕ)) = ((CategoryTheory.SimplicialObject.whiskering C D).obj F).comp (AlgebraicTopology.alternatingFaceMapComplex D) - AlgebraicTopology.inclusionOfMooreComplexMap_f 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{A : Type u_2} [CategoryTheory.Category.{v_2, u_2} A] [CategoryTheory.Abelian A] (X : CategoryTheory.SimplicialObject A) (n : ℕ) : (AlgebraicTopology.inclusionOfMooreComplexMap X).f n = (AlgebraicTopology.NormalizedMooreComplex.objX X n).arrow - AlgebraicTopology.alternatingFaceMapComplex_map_f 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {X Y : CategoryTheory.SimplicialObject C} (f : X ⟶ Y) (n : ℕ) : ((AlgebraicTopology.alternatingFaceMapComplex C).map f).f n = f.app (Opposite.op { len := n }) - AlgebraicTopology.alternatingFaceMapComplexCompMapHomologicalComplexIso 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {D : Type u_2} [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Preadditive D] (F : CategoryTheory.Functor C D) [F.Additive] : (AlgebraicTopology.alternatingFaceMapComplex C).comp (F.mapHomologicalComplex (ComplexShape.down ℕ)) ≅ ((CategoryTheory.SimplicialObject.whiskering C D).obj F).comp (AlgebraicTopology.alternatingFaceMapComplex D) - AlgebraicTopology.AlternatingFaceMapComplex.ε_app_f_zero 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] (X : CategoryTheory.SimplicialObject.Augmented C) : (AlgebraicTopology.AlternatingFaceMapComplex.ε.app X).f 0 = X.hom.app (Opposite.op { len := 0 }) - AlgebraicTopology.alternatingFaceMapComplexCompMapHomologicalComplexIso_hom_app_f 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {D : Type u_2} [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Preadditive D] (F : CategoryTheory.Functor C D) [F.Additive] (X : CategoryTheory.SimplicialObject C) (i : ℕ) : ((AlgebraicTopology.alternatingFaceMapComplexCompMapHomologicalComplexIso F).hom.app X).f i = CategoryTheory.CategoryStruct.id (F.obj (X.obj (Opposite.op { len := i }))) - AlgebraicTopology.alternatingFaceMapComplexCompMapHomologicalComplexIso_inv_app_f 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {D : Type u_2} [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Preadditive D] (F : CategoryTheory.Functor C D) [F.Additive] (X : CategoryTheory.SimplicialObject C) (i : ℕ) : ((AlgebraicTopology.alternatingFaceMapComplexCompMapHomologicalComplexIso F).inv.app X).f i = CategoryTheory.CategoryStruct.id (F.obj (X.obj (Opposite.op { len := i }))) - AlgebraicTopology.AlternatingFaceMapComplex.ε_app_f_succ 📋 Mathlib.AlgebraicTopology.AlternatingFaceMapComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] (X : CategoryTheory.SimplicialObject.Augmented C) (n : ℕ) : (AlgebraicTopology.AlternatingFaceMapComplex.ε.app X).f (n + 1) = 0 - CategoryTheory.SimplicialObject.Augmented.ExtraDegeneracy.homotopyEquiv 📋 Mathlib.AlgebraicTopology.ExtraDegeneracy
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] {X : CategoryTheory.SimplicialObject.Augmented C} (ed : X.ExtraDegeneracy) : HomotopyEquiv (AlgebraicTopology.AlternatingFaceMapComplex.obj (CategoryTheory.SimplicialObject.Augmented.drop.obj X)) ((ChainComplex.single₀ C).obj (CategoryTheory.SimplicialObject.Augmented.point.obj X)) - ChainComplex.alternatingConst 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] : CategoryTheory.Functor C (ChainComplex C ℕ) - ChainComplex.instHasHomologyNatObjAlternatingConst 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (X : C) (n : ℕ) : HomologicalComplex.HasHomology (ChainComplex.alternatingConst.obj X) n - ChainComplex.alternatingConstHomologyDataOdd 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (X : C) (n : ℕ) (hn : Odd n) : (HomologicalComplex.sc (ChainComplex.alternatingConst.obj X) n).HomologyData - ChainComplex.alternatingConst_exactAt 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (X : C) (n : ℕ) (hn : n ≠ 0) : HomologicalComplex.ExactAt (ChainComplex.alternatingConst.obj X) n - ChainComplex.alternatingConstHomologyDataZero 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C) (n : ℕ) (hn : n = 0) : (HomologicalComplex.sc (ChainComplex.alternatingConst.obj X) n).HomologyData - ChainComplex.alternatingConstHomologyDataEvenNEZero 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (X : C) (n : ℕ) (hn : Even n) (h₀ : n ≠ 0) : (HomologicalComplex.sc (ChainComplex.alternatingConst.obj X) n).HomologyData - ChainComplex.alternatingConstHomologyZero 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] (X : C) : HomologicalComplex.homology (ChainComplex.alternatingConst.obj X) 0 ≅ X - ChainComplex.alternatingConstHomotopyEquiv 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] (X : C) : HomotopyEquiv (ChainComplex.alternatingConst.obj X) ((ChainComplex.single₀ C).obj X) - ChainComplex.alternatingConst_obj 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C) : ChainComplex.alternatingConst.obj X = HomologicalComplex.alternatingConst X ⋯ ⋯ ⋯ - AlgebraicTopology.alternatingFaceMapComplexConst 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] : (CategoryTheory.Functor.const SimplexCategoryᵒᵖ).comp (AlgebraicTopology.alternatingFaceMapComplex C) ≅ ChainComplex.alternatingConst - ChainComplex.alternatingConst_map_f 📋 Mathlib.Algebra.Homology.AlternatingConst
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} (f : X ⟶ Y) (x✝ : ℕ) : (ChainComplex.alternatingConst.map f).f x✝ = f - ChainComplex.truncate 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] : CategoryTheory.Functor (ChainComplex V ℕ) (ChainComplex V ℕ) - ChainComplex.toSingle₀AsComplex 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] [CategoryTheory.Limits.HasZeroObject V] (C : ChainComplex V ℕ) (X : V) (f : C ⟶ (ChainComplex.single₀ V).obj X) : ChainComplex V ℕ - ChainComplex.truncate_obj_X 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) (i : ℕ) : (ChainComplex.truncate.obj C).X i = C.X (i + 1) - ChainComplex.truncate_obj_d 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) (i j : ℕ) : (ChainComplex.truncate.obj C).d i j = C.d (i + 1) (j + 1) - ChainComplex.truncateTo 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroObject V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) : ChainComplex.truncate.obj C ⟶ (ChainComplex.single₀ V).obj (C.X 0) - ChainComplex.augmentTruncate 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) : (ChainComplex.truncate.obj C).augment (C.d 1 0) ⋯ ≅ C - ChainComplex.augment 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) : ChainComplex V ℕ - ChainComplex.augment_X_zero 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) : (C.augment f w).X 0 = X - ChainComplex.chainComplex_d_succ_succ_zero 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) (i : ℕ) : C.d (i + 2) 0 = 0 - ChainComplex.augment_X_succ 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) (i : ℕ) : (C.augment f w).X (i + 1) = C.X i - ChainComplex.augment_d_one_zero 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) : (C.augment f w).d 1 0 = f - ChainComplex.truncateAugment 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) : ChainComplex.truncate.obj (C.augment f w) ≅ C - ChainComplex.augment_d_succ_succ 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) (i j : ℕ) : (C.augment f w).d (i + 1) (j + 1) = C.d i j - ChainComplex.truncate_map_f 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {X✝ Y✝ : ChainComplex V ℕ} (f : X✝ ⟶ Y✝) (i : ℕ) : (ChainComplex.truncate.map f).f i = f.f (i + 1) - ChainComplex.truncateAugment_hom_f 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) (i : ℕ) : (C.truncateAugment f w).hom.f i = CategoryTheory.CategoryStruct.id (C.X i) - ChainComplex.truncateAugment_inv_f 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) {X : V} (f : C.X 0 ⟶ X) (w : CategoryTheory.CategoryStruct.comp (C.d 1 0) f = 0) (i : ℕ) : (C.truncateAugment f w).inv.f i = CategoryTheory.CategoryStruct.id ((ChainComplex.truncate.obj (C.augment f w)).X i) - ChainComplex.augmentTruncate_hom_f_zero 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) : C.augmentTruncate.hom.f 0 = CategoryTheory.CategoryStruct.id (C.X 0) - ChainComplex.augmentTruncate_inv_f_zero 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) : C.augmentTruncate.inv.f 0 = CategoryTheory.CategoryStruct.id (C.X 0) - ChainComplex.augmentTruncate_hom_f_succ 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) (i : ℕ) : C.augmentTruncate.hom.f (i + 1) = CategoryTheory.CategoryStruct.id (C.X (i + 1)) - ChainComplex.augmentTruncate_inv_f_succ 📋 Mathlib.Algebra.Homology.Augment
{V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (C : ChainComplex V ℕ) (i : ℕ) : C.augmentTruncate.inv.f (i + 1) = CategoryTheory.CategoryStruct.id (C.X (i + 1)) - ChainComplex.cochainComplexEquivalence 📋 Mathlib.Algebra.Homology.CochainComplexOpposite
(C : Type u_1) [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] : ChainComplex C ℤ ≌ CochainComplex C ℤ - CochainComplex.instIsKProjectiveExtendNatIntEmbeddingDownNatOfProjectiveX 📋 Mathlib.Algebra.Homology.HomotopyCategory.KProjective
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Abelian C] (K : ChainComplex C ℕ) [∀ (n : ℕ), CategoryTheory.Projective (K.X n)] : CochainComplex.IsKProjective (HomologicalComplex.extend K ComplexShape.embeddingDownNat) - ChainComplex.quasiIso_iff_of_projective 📋 Mathlib.Algebra.Homology.DerivedCategory.KProjective
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {K L : ChainComplex C ℕ} [∀ (n : ℕ), CategoryTheory.Projective (K.X n)] [∀ (n : ℕ), CategoryTheory.Projective (L.X n)] (f : K ⟶ L) : QuasiIso f ↔ HomologicalComplex.homotopyEquivalences C (ComplexShape.down ℕ) f - CochainComplex.ConnectData 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (K : ChainComplex C ℕ) (L : CochainComplex C ℕ) : Type v - CochainComplex.ConnectData.X 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (K : ChainComplex C ℕ) (L : CochainComplex C ℕ) : ℤ → C - CochainComplex.ConnectData.cochainComplex 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : CochainComplex C ℤ - CochainComplex.ConnectData.d 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m : ℤ) : CochainComplex.ConnectData.X K L n ⟶ CochainComplex.ConnectData.X K L m - CochainComplex.ConnectData.X_negSucc 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (n : ℕ) : CochainComplex.ConnectData.X K L (Int.negSucc n) = K.X n - CochainComplex.ConnectData.X_ofNat 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (n : ℕ) : CochainComplex.ConnectData.X K L ↑n = L.X n - CochainComplex.ConnectData.X_zero 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} : CochainComplex.ConnectData.X K L 0 = L.X 0 - CochainComplex.ConnectData.X_negOne 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} : CochainComplex.ConnectData.X K L (-1) = K.X 0 - CochainComplex.ConnectData.cochainComplex_X 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (a✝ : ℤ) : h.cochainComplex.X a✝ = CochainComplex.ConnectData.X K L a✝ - CochainComplex.ConnectData.d_sub_one_zero 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : h.d (-1) 0 = h.d₀ - CochainComplex.ConnectData.d_negSucc 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m : ℕ) : h.d (Int.negSucc n) (Int.negSucc m) = K.d n m - CochainComplex.ConnectData.d₀ 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (self : CochainComplex.ConnectData K L) : K.X 0 ⟶ L.X 0 - CochainComplex.ConnectData.cochainComplex_d 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m : ℤ) : h.cochainComplex.d n m = h.d n m - CochainComplex.ConnectData.d_ofNat 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m : ℕ) : h.d ↑n ↑m = L.d n m - CochainComplex.ConnectData.d_zero_one 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : h.d 0 1 = L.d 0 1 - CochainComplex.ConnectData.d_sub_two_sub_one 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : h.d (-2) (-1) = K.d 1 0 - CochainComplex.ConnectData.restrictionGEIso 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : HomologicalComplex.restriction h.cochainComplex (ComplexShape.embeddingUpIntGE 0) ≅ L - CochainComplex.ConnectData.restrictionLEIso 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : HomologicalComplex.restriction h.cochainComplex (ComplexShape.embeddingUpIntLE (-1)) ≅ K - CochainComplex.ConnectData.shape 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m : ℤ) (hnm : n + 1 ≠ m) : h.d n m = 0 - CochainComplex.ConnectData.d_comp_d 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m p : ℤ) : CategoryTheory.CategoryStruct.comp (h.d n m) (h.d m p) = 0 - CochainComplex.ConnectData.homologyIsoPos 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n : ℕ) [NeZero n] (m : ℤ) (hm : m = ↑n) [HomologicalComplex.HasHomology h.cochainComplex m] [HomologicalComplex.HasHomology L n] : HomologicalComplex.homology h.cochainComplex m ≅ HomologicalComplex.homology L n - CochainComplex.ConnectData.d_comp_d_assoc 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n m p : ℤ) {Z : C} (h✝ : CochainComplex.ConnectData.X K L p ⟶ Z) : CategoryTheory.CategoryStruct.comp (h.d n m) (CategoryTheory.CategoryStruct.comp (h.d m p) h✝) = CategoryTheory.CategoryStruct.comp 0 h✝ - CochainComplex.ConnectData.homologyIsoNeg 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (n : ℕ) [NeZero n] (m : ℤ) (hm : m = -↑(n + 1)) [HomologicalComplex.HasHomology h.cochainComplex m] [HomologicalComplex.HasHomology K n] : HomologicalComplex.homology h.cochainComplex m ≅ HomologicalComplex.homology K n - CochainComplex.ConnectData.map_id 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) : h.map h (CategoryTheory.CategoryStruct.id K) (CategoryTheory.CategoryStruct.id L) ⋯ = CategoryTheory.CategoryStruct.id h.cochainComplex - CochainComplex.ConnectData.restrictionGEIso_hom_f 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (i : ℕ) : h.restrictionGEIso.hom.f i = (HomologicalComplex.restrictionXIso h.cochainComplex (ComplexShape.embeddingUpIntGE 0) ⋯).hom - CochainComplex.ConnectData.restrictionGEIso_inv_f 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (i : ℕ) : h.restrictionGEIso.inv.f i = (HomologicalComplex.restrictionXIso h.cochainComplex (ComplexShape.embeddingUpIntGE 0) ⋯).inv - CochainComplex.ConnectData.restrictionLEIso_hom_f 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (i : ℕ) : h.restrictionLEIso.hom.f i = (HomologicalComplex.restrictionXIso h.cochainComplex (ComplexShape.embeddingUpIntLE (-1)) ⋯).hom - CochainComplex.ConnectData.restrictionLEIso_inv_f 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (i : ℕ) : h.restrictionLEIso.inv.f i = (HomologicalComplex.restrictionXIso h.cochainComplex (ComplexShape.embeddingUpIntLE (-1)) ⋯).inv - CochainComplex.ConnectData.comp_d₀ 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (self : CochainComplex.ConnectData K L) : CategoryTheory.CategoryStruct.comp (K.d 1 0) self.d₀ = 0 - CochainComplex.ConnectData.d₀_comp 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (self : CochainComplex.ConnectData K L) : CategoryTheory.CategoryStruct.comp self.d₀ (L.d 0 1) = 0 - CochainComplex.ConnectData.comp_d₀_assoc 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (self : CochainComplex.ConnectData K L) {Z : C} (h : L.X 0 ⟶ Z) : CategoryTheory.CategoryStruct.comp (K.d 1 0) (CategoryTheory.CategoryStruct.comp self.d₀ h) = CategoryTheory.CategoryStruct.comp 0 h - CochainComplex.ConnectData.d₀_comp_assoc 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (self : CochainComplex.ConnectData K L) {Z : C} (h : L.X 1 ⟶ Z) : CategoryTheory.CategoryStruct.comp self.d₀ (CategoryTheory.CategoryStruct.comp (L.d 0 1) h) = CategoryTheory.CategoryStruct.comp 0 h - CochainComplex.ConnectData.map 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K K' : ChainComplex C ℕ} {L L' : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (h' : CochainComplex.ConnectData K' L') (fK : K ⟶ K') (fL : L ⟶ L') (f_comm : CategoryTheory.CategoryStruct.comp (fK.f 0) h'.d₀ = CategoryTheory.CategoryStruct.comp h.d₀ (fL.f 0)) : h.cochainComplex ⟶ h'.cochainComplex - CochainComplex.ConnectData.map_f 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K K' : ChainComplex C ℕ} {L L' : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (h' : CochainComplex.ConnectData K' L') (fK : K ⟶ K') (fL : L ⟶ L') (f_comm : CategoryTheory.CategoryStruct.comp (fK.f 0) h'.d₀ = CategoryTheory.CategoryStruct.comp h.d₀ (fL.f 0)) (x✝ : ℤ) : (h.map h' fK fL f_comm).f x✝ = match x✝ with | Int.ofNat n => fL.f n | Int.negSucc n => fK.f n - CochainComplex.ConnectData.mk 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C ℕ} {L : CochainComplex C ℕ} (d₀ : K.X 0 ⟶ L.X 0) (comp_d₀ : CategoryTheory.CategoryStruct.comp (K.d 1 0) d₀ = 0) (d₀_comp : CategoryTheory.CategoryStruct.comp d₀ (L.d 0 1) = 0) : CochainComplex.ConnectData K L - CochainComplex.ConnectData.homologyMap_map_of_eq_succ 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K K' : ChainComplex C ℕ} {L L' : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (h' : CochainComplex.ConnectData K' L') (fK : K ⟶ K') (fL : L ⟶ L') (f_comm : CategoryTheory.CategoryStruct.comp (fK.f 0) h'.d₀ = CategoryTheory.CategoryStruct.comp h.d₀ (fL.f 0)) (n : ℕ) [NeZero n] (m : ℤ) (hmn : m = ↑n) [HomologicalComplex.HasHomology h.cochainComplex m] [HomologicalComplex.HasHomology L n] [HomologicalComplex.HasHomology h'.cochainComplex m] [HomologicalComplex.HasHomology L' n] : HomologicalComplex.homologyMap (h.map h' fK fL f_comm) m = CategoryTheory.CategoryStruct.comp (h.homologyIsoPos n m hmn).hom (CategoryTheory.CategoryStruct.comp (HomologicalComplex.homologyMap fL n) (h'.homologyIsoPos n m hmn).inv) - CochainComplex.ConnectData.homologyMap_map_of_eq_neg_succ 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K K' : ChainComplex C ℕ} {L L' : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (h' : CochainComplex.ConnectData K' L') (fK : K ⟶ K') (fL : L ⟶ L') (f_comm : CategoryTheory.CategoryStruct.comp (fK.f 0) h'.d₀ = CategoryTheory.CategoryStruct.comp h.d₀ (fL.f 0)) (n : ℕ) [NeZero n] (m : ℤ) (hmn : m = -↑(n + 1)) [HomologicalComplex.HasHomology h.cochainComplex m] [HomologicalComplex.HasHomology K n] [HomologicalComplex.HasHomology h'.cochainComplex m] [HomologicalComplex.HasHomology K' n] : HomologicalComplex.homologyMap (h.map h' fK fL f_comm) m = CategoryTheory.CategoryStruct.comp (h.homologyIsoNeg n m hmn).hom (CategoryTheory.CategoryStruct.comp (HomologicalComplex.homologyMap fK n) (h'.homologyIsoNeg n m hmn).inv) - CochainComplex.ConnectData.map_comp_map 📋 Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K K' K'' : ChainComplex C ℕ} {L L' L'' : CochainComplex C ℕ} (h : CochainComplex.ConnectData K L) (h' : CochainComplex.ConnectData K' L') (h'' : CochainComplex.ConnectData K'' L'') (fK : K ⟶ K') (fL : L ⟶ L') (f_comm : CategoryTheory.CategoryStruct.comp (fK.f 0) h'.d₀ = CategoryTheory.CategoryStruct.comp h.d₀ (fL.f 0)) (fK' : K' ⟶ K'') (fL' : L' ⟶ L'') (f_comm' : CategoryTheory.CategoryStruct.comp (fK'.f 0) h''.d₀ = CategoryTheory.CategoryStruct.comp h'.d₀ (fL'.f 0)) : CategoryTheory.CategoryStruct.comp (h.map h' fK fL f_comm) (h'.map h'' fK' fL' f_comm') = h.map h'' (CategoryTheory.CategoryStruct.comp fK fK') (CategoryTheory.CategoryStruct.comp fL fL') ⋯ - ChainComplex.homotopyEquivalences_shortComplexF_iff_of_degreewiseSplit 📋 Mathlib.Algebra.Homology.HomotopyCategory.ChainComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] (S : CategoryTheory.ShortComplex (ChainComplex C ℕ)) (σ : (n : ℕ) → (S.map (HomologicalComplex.eval C (ComplexShape.down ℕ) n)).Splitting) : HomologicalComplex.homotopyEquivalences C (ComplexShape.down ℕ) S.f ↔ Nonempty (Homotopy (CategoryTheory.CategoryStruct.id S.X₃) 0) - ChainComplex.homotopyEquivalences_shortComplexG_iff_of_degreewiseSplit 📋 Mathlib.Algebra.Homology.HomotopyCategory.ChainComplex
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] (S : CategoryTheory.ShortComplex (ChainComplex C ℕ)) (σ : (n : ℕ) → (S.map (HomologicalComplex.eval C (ComplexShape.down ℕ) n)).Splitting) : HomologicalComplex.homotopyEquivalences C (ComplexShape.down ℕ) S.g ↔ Nonempty (Homotopy (CategoryTheory.CategoryStruct.id S.X₁) 0) - CategoryTheory.ProjectiveResolution.complex 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.ProjectiveResolution Z) : ChainComplex C ℕ - CategoryTheory.ProjectiveResolution.self_complex 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (Z : C) [CategoryTheory.Projective Z] : (CategoryTheory.ProjectiveResolution.self Z).complex = (ChainComplex.single₀ C).obj Z - CategoryTheory.ProjectiveResolution.Hom.hom 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {P : CategoryTheory.ProjectiveResolution Z} {Z' : C} {P' : CategoryTheory.ProjectiveResolution Z'} {f : Z ⟶ Z'} (self : P.Hom P' f) : P.complex ⟶ P'.complex - CategoryTheory.ProjectiveResolution.quasiIso 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.ProjectiveResolution Z) : QuasiIso self.π - CategoryTheory.ProjectiveResolution.π 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (self : CategoryTheory.ProjectiveResolution Z) : self.complex ⟶ (ChainComplex.single₀ C).obj Z - CategoryTheory.ProjectiveResolution.instEpiFNatπ 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) (n : ℕ) : CategoryTheory.Epi (P.π.f n) - CategoryTheory.ProjectiveResolution.self_π 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] (Z : C) [CategoryTheory.Projective Z] : (CategoryTheory.ProjectiveResolution.self Z).π = CategoryTheory.CategoryStruct.id ((ChainComplex.single₀ C).obj Z) - CategoryTheory.ProjectiveResolution.mk 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (complex : ChainComplex C ℕ) (projective : ∀ (n : ℕ), CategoryTheory.Projective (complex.X n) := by infer_instance) [hasHomology : ∀ (i : ℕ), HomologicalComplex.HasHomology complex i] (π : complex ⟶ (ChainComplex.single₀ C).obj Z) (quasiIso : QuasiIso π := by infer_instance) : CategoryTheory.ProjectiveResolution Z - CategoryTheory.ProjectiveResolution.Hom.hom_comp_π 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) {Z' : C} (P' : CategoryTheory.ProjectiveResolution Z') {f : Z ⟶ Z'} (φ : P.Hom P' f) : CategoryTheory.CategoryStruct.comp φ.hom P'.π = CategoryTheory.CategoryStruct.comp P.π ((ChainComplex.single₀ C).map f) - CategoryTheory.ProjectiveResolution.π_f_succ 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) (n : ℕ) : P.π.f (n + 1) = 0 - CategoryTheory.ProjectiveResolution.Hom.hom_comp_π_assoc 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) {Z' : C} (P' : CategoryTheory.ProjectiveResolution Z') {f : Z ⟶ Z'} (φ : P.Hom P' f) {Z✝ : ChainComplex C ℕ} (h : (ChainComplex.single₀ C).obj Z' ⟶ Z✝) : CategoryTheory.CategoryStruct.comp φ.hom (CategoryTheory.CategoryStruct.comp P'.π h) = CategoryTheory.CategoryStruct.comp P.π (CategoryTheory.CategoryStruct.comp ((ChainComplex.single₀ C).map f) h) - CategoryTheory.ProjectiveResolution.complex_d_comp_π_f_zero 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) : CategoryTheory.CategoryStruct.comp (P.complex.d 1 0) (P.π.f 0) = 0 - CategoryTheory.ProjectiveResolution.Hom.hom_f_zero_comp_π_f_zero 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {P : CategoryTheory.ProjectiveResolution Z} {Z' : C} {P' : CategoryTheory.ProjectiveResolution Z'} {f : Z ⟶ Z'} (self : P.Hom P' f) : CategoryTheory.CategoryStruct.comp (self.hom.f 0) (P'.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) (((ChainComplex.single₀ C).map f).f 0) - CategoryTheory.ProjectiveResolution.complex_d_comp_π_f_zero_assoc 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) {Z✝ : C} (h : ((ChainComplex.single₀ C).obj Z).X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (P.complex.d 1 0) (CategoryTheory.CategoryStruct.comp (P.π.f 0) h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.ProjectiveResolution.Hom.mk 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {P : CategoryTheory.ProjectiveResolution Z} {Z' : C} {P' : CategoryTheory.ProjectiveResolution Z'} {f : Z ⟶ Z'} (hom : P.complex ⟶ P'.complex) (hom_f_zero_comp_π_f_zero : CategoryTheory.CategoryStruct.comp (hom.f 0) (P'.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) (((ChainComplex.single₀ C).map f).f 0)) : P.Hom P' f - CategoryTheory.ProjectiveResolution.Hom.hom_f_zero_comp_π_f_zero_assoc 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasZeroMorphisms C] {Z : C} {P : CategoryTheory.ProjectiveResolution Z} {Z' : C} {P' : CategoryTheory.ProjectiveResolution Z'} {f : Z ⟶ Z'} (self : P.Hom P' f) {Z✝ : C} (h : ((ChainComplex.single₀ C).obj Z').X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (self.hom.f 0) (CategoryTheory.CategoryStruct.comp (P'.π.f 0) h) = CategoryTheory.CategoryStruct.comp (P.π.f 0) (CategoryTheory.CategoryStruct.comp (((ChainComplex.single₀ C).map f).f 0) h) - CategoryTheory.Functor.mapProjectiveResolution_π 📋 Mathlib.CategoryTheory.Preadditive.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v_1, u} C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Preadditive C] {D : Type u'} [CategoryTheory.Category.{v', u'} D] [CategoryTheory.Limits.HasZeroObject D] [CategoryTheory.Preadditive D] [CategoryTheory.CategoryWithHomology D] (F : CategoryTheory.Functor C D) [F.Additive] [F.PreservesProjectiveObjects] [F.PreservesHomology] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) : (F.mapProjectiveResolution P).π = CategoryTheory.CategoryStruct.comp ((F.mapHomologicalComplex (ComplexShape.down ℕ)).map P.π) ((HomologicalComplex.singleMapHomologicalComplex F (ComplexShape.down ℕ) 0).hom.app Z) - CategoryTheory.ProjectiveResolution.ofComplex 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.EnoughProjectives C] (Z : C) : ChainComplex C ℕ - CategoryTheory.ProjectiveResolution.lift 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) (P : CategoryTheory.ProjectiveResolution Y) (Q : CategoryTheory.ProjectiveResolution Z) : P.complex ⟶ Q.complex - CategoryTheory.ProjectiveResolution.liftIdHomotopy 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (X : C) (P : CategoryTheory.ProjectiveResolution X) : Homotopy (CategoryTheory.ProjectiveResolution.lift (CategoryTheory.CategoryStruct.id X) P P) (CategoryTheory.CategoryStruct.id P.complex) - CategoryTheory.ProjectiveResolution.exact₀ 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Z : C} (P : CategoryTheory.ProjectiveResolution Z) : { X₁ := P.complex.X 1, X₂ := P.complex.X 0, X₃ := ((ChainComplex.single₀ C).obj Z).X 0, f := P.complex.d 1 0, g := P.π.f 0, zero := ⋯ }.Exact - CategoryTheory.ProjectiveResolution.homotopyEquiv_hom_π 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (P Q : CategoryTheory.ProjectiveResolution X) : CategoryTheory.CategoryStruct.comp (P.homotopyEquiv Q).hom Q.π = P.π - CategoryTheory.ProjectiveResolution.homotopyEquiv_inv_π 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (P Q : CategoryTheory.ProjectiveResolution X) : CategoryTheory.CategoryStruct.comp (P.homotopyEquiv Q).inv P.π = Q.π - CategoryTheory.ProjectiveResolution.lift_commutes 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) (P : CategoryTheory.ProjectiveResolution Y) (Q : CategoryTheory.ProjectiveResolution Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.lift f P Q) Q.π = CategoryTheory.CategoryStruct.comp P.π ((ChainComplex.single₀ C).map f) - CategoryTheory.ProjectiveResolution.lift_commutes_zero 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) (P : CategoryTheory.ProjectiveResolution Y) (Q : CategoryTheory.ProjectiveResolution Z) : CategoryTheory.CategoryStruct.comp ((CategoryTheory.ProjectiveResolution.lift f P Q).f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f - CategoryTheory.ProjectiveResolution.homotopyEquiv_hom_π_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (P Q : CategoryTheory.ProjectiveResolution X) {Z : HomologicalComplex C (ComplexShape.down ℕ)} (h : (ChainComplex.single₀ C).obj X ⟶ Z) : CategoryTheory.CategoryStruct.comp (P.homotopyEquiv Q).hom (CategoryTheory.CategoryStruct.comp Q.π h) = CategoryTheory.CategoryStruct.comp P.π h - CategoryTheory.ProjectiveResolution.homotopyEquiv_inv_π_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {X : C} (P Q : CategoryTheory.ProjectiveResolution X) {Z : HomologicalComplex C (ComplexShape.down ℕ)} (h : (ChainComplex.single₀ C).obj X ⟶ Z) : CategoryTheory.CategoryStruct.comp (P.homotopyEquiv Q).inv (CategoryTheory.CategoryStruct.comp P.π h) = CategoryTheory.CategoryStruct.comp Q.π h - CategoryTheory.ProjectiveResolution.lift_commutes_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) (P : CategoryTheory.ProjectiveResolution Y) (Q : CategoryTheory.ProjectiveResolution Z) {Z✝ : ChainComplex C ℕ} (h : (ChainComplex.single₀ C).obj Z ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.lift f P Q) (CategoryTheory.CategoryStruct.comp Q.π h) = CategoryTheory.CategoryStruct.comp P.π (CategoryTheory.CategoryStruct.comp ((ChainComplex.single₀ C).map f) h) - CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) : P.complex.X 1 ⟶ Q.complex.X 2 - CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) : P.complex.X 0 ⟶ Q.complex.X 1 - CategoryTheory.ProjectiveResolution.lift_commutes_zero_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) (P : CategoryTheory.ProjectiveResolution Y) (Q : CategoryTheory.ProjectiveResolution Z) {Z✝ : C} (h : ((ChainComplex.single₀ C).obj Z).X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp ((CategoryTheory.ProjectiveResolution.lift f P Q).f 0) (CategoryTheory.CategoryStruct.comp (Q.π.f 0) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp (P.π.f 0) f) h - CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero_comp 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero f comm) (Q.complex.d 1 0) = f.f 0 - CategoryTheory.ProjectiveResolution.liftHomotopyZero 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) : Homotopy f 0 - CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero_comp_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) {Z✝ : C} (h : Q.complex.X 0 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero f comm) (CategoryTheory.CategoryStruct.comp (Q.complex.d 1 0) h) = CategoryTheory.CategoryStruct.comp (f.f 0) h - CategoryTheory.ProjectiveResolution.liftHomotopy 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} (f : Y ⟶ Z) {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (g h : P.complex ⟶ Q.complex) (g_comm : CategoryTheory.CategoryStruct.comp g Q.π = CategoryTheory.CategoryStruct.comp P.π ((ChainComplex.single₀ C).map f)) (h_comm : CategoryTheory.CategoryStruct.comp h Q.π = CategoryTheory.CategoryStruct.comp P.π ((ChainComplex.single₀ C).map f)) : Homotopy g h - CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (n : ℕ) (g : P.complex.X n ⟶ Q.complex.X (n + 1)) (g' : P.complex.X (n + 1) ⟶ Q.complex.X (n + 2)) (w : f.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.complex.d (n + 1) n) g + CategoryTheory.CategoryStruct.comp g' (Q.complex.d (n + 2) (n + 1))) : P.complex.X (n + 2) ⟶ Q.complex.X (n + 3) - CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne_comp 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne f comm) (Q.complex.d 2 1) = f.f 1 - CategoryTheory.CategoryStruct.comp (P.complex.d 1 0) (CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero f comm) - CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne_comp_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp f Q.π = 0) {Z✝ : C} (h : Q.complex.X 1 ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.liftHomotopyZeroOne f comm) (CategoryTheory.CategoryStruct.comp (Q.complex.d 2 1) h) = CategoryTheory.CategoryStruct.comp (f.f 1 - CategoryTheory.CategoryStruct.comp (P.complex.d 1 0) (CategoryTheory.ProjectiveResolution.liftHomotopyZeroZero f comm)) h - CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc_comp 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (n : ℕ) (g : P.complex.X n ⟶ Q.complex.X (n + 1)) (g' : P.complex.X (n + 1) ⟶ Q.complex.X (n + 2)) (w : f.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.complex.d (n + 1) n) g + CategoryTheory.CategoryStruct.comp g' (Q.complex.d (n + 2) (n + 1))) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc f n g g' w) (Q.complex.d (n + 3) (n + 2)) = f.f (n + 2) - CategoryTheory.CategoryStruct.comp (P.complex.d (n + 2) (n + 1)) g' - CategoryTheory.ProjectiveResolution.of_def 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] [CategoryTheory.EnoughProjectives C] (Z : C) : CategoryTheory.ProjectiveResolution.of Z = { complex := CategoryTheory.ProjectiveResolution.ofComplex Z, projective := ⋯, hasHomology := ⋯, π := ((CategoryTheory.ProjectiveResolution.ofComplex Z).toSingle₀Equiv Z).symm ⟨CategoryTheory.Projective.π Z, ⋯⟩, quasiIso := ⋯ } - CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc_comp_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] {Y Z : C} {P : CategoryTheory.ProjectiveResolution Y} {Q : CategoryTheory.ProjectiveResolution Z} (f : P.complex ⟶ Q.complex) (n : ℕ) (g : P.complex.X n ⟶ Q.complex.X (n + 1)) (g' : P.complex.X (n + 1) ⟶ Q.complex.X (n + 2)) (w : f.f (n + 1) = CategoryTheory.CategoryStruct.comp (P.complex.d (n + 1) n) g + CategoryTheory.CategoryStruct.comp g' (Q.complex.d (n + 2) (n + 1))) {Z✝ : C} (h : Q.complex.X (n + 2) ⟶ Z✝) : CategoryTheory.CategoryStruct.comp (CategoryTheory.ProjectiveResolution.liftHomotopyZeroSucc f n g g' w) (CategoryTheory.CategoryStruct.comp (Q.complex.d (n + 3) (n + 2)) h) = CategoryTheory.CategoryStruct.comp (f.f (n + 2) - CategoryTheory.CategoryStruct.comp (P.complex.d (n + 2) (n + 1)) g') h - CategoryTheory.ProjectiveResolution.iso_inv_naturality 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.ProjectiveResolution X) (Q : CategoryTheory.ProjectiveResolution Y) (φ : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp (φ.f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f) : CategoryTheory.CategoryStruct.comp P.iso.inv ((CategoryTheory.projectiveResolutions C).map f) = CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient C (ComplexShape.down ℕ)).map φ) Q.iso.inv - CategoryTheory.ProjectiveResolution.iso_hom_naturality 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.ProjectiveResolution X) (Q : CategoryTheory.ProjectiveResolution Y) (φ : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp (φ.f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f) : CategoryTheory.CategoryStruct.comp ((CategoryTheory.projectiveResolutions C).map f) Q.iso.hom = CategoryTheory.CategoryStruct.comp P.iso.hom ((HomotopyCategory.quotient C (ComplexShape.down ℕ)).map φ) - CategoryTheory.ProjectiveResolution.iso_inv_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.ProjectiveResolution X) (Q : CategoryTheory.ProjectiveResolution Y) (φ : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp (φ.f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f) {Z : HomotopyCategory C (ComplexShape.down ℕ)} (h : (CategoryTheory.projectiveResolutions C).obj Y ⟶ Z) : CategoryTheory.CategoryStruct.comp P.iso.inv (CategoryTheory.CategoryStruct.comp ((CategoryTheory.projectiveResolutions C).map f) h) = CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient C (ComplexShape.down ℕ)).map φ) (CategoryTheory.CategoryStruct.comp Q.iso.inv h) - CategoryTheory.ProjectiveResolution.iso_hom_naturality_assoc 📋 Mathlib.CategoryTheory.Abelian.Projective.Resolution
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.ProjectiveResolution X) (Q : CategoryTheory.ProjectiveResolution Y) (φ : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp (φ.f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f) {Z : HomotopyCategory C (ComplexShape.down ℕ)} (h : (HomotopyCategory.quotient C (ComplexShape.down ℕ)).obj Q.complex ⟶ Z) : CategoryTheory.CategoryStruct.comp ((CategoryTheory.projectiveResolutions C).map f) (CategoryTheory.CategoryStruct.comp Q.iso.hom h) = CategoryTheory.CategoryStruct.comp P.iso.hom (CategoryTheory.CategoryStruct.comp ((HomotopyCategory.quotient C (ComplexShape.down ℕ)).map φ) h) - CategoryTheory.ProjectiveResolution.pOpcycles_comp_fromLeftDerivedZero' 📋 Mathlib.CategoryTheory.Abelian.LeftDerived
{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.ProjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] : CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.down ℕ)).obj P.complex).pOpcycles 0) (P.fromLeftDerivedZero' F) = F.map (P.π.f 0) - CategoryTheory.ProjectiveResolution.pOpcycles_comp_fromLeftDerivedZero'_assoc 📋 Mathlib.CategoryTheory.Abelian.LeftDerived
{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.ProjectiveResolution X) (F : CategoryTheory.Functor C D) [F.Additive] {Z : D} (h : F.obj X ⟶ Z) : CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.down ℕ)).obj P.complex).pOpcycles 0) (CategoryTheory.CategoryStruct.comp (P.fromLeftDerivedZero' F) h) = CategoryTheory.CategoryStruct.comp (F.map (P.π.f 0)) h - CategoryTheory.Functor.leftDerived_map_eq 📋 Mathlib.CategoryTheory.Abelian.LeftDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] [CategoryTheory.Abelian D] (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) {X Y : C} (f : X ⟶ Y) {P : CategoryTheory.ProjectiveResolution X} {Q : CategoryTheory.ProjectiveResolution Y} (g : P.complex ⟶ Q.complex) (w : CategoryTheory.CategoryStruct.comp g Q.π = CategoryTheory.CategoryStruct.comp P.π ((ChainComplex.single₀ C).map f)) : (F.leftDerived n).map f = CategoryTheory.CategoryStruct.comp (P.isoLeftDerivedObj F n).hom (CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.down ℕ)).comp (HomologicalComplex.homologyFunctor D (ComplexShape.down ℕ) n)).map g) (Q.isoLeftDerivedObj F n).inv) - CategoryTheory.ProjectiveResolution.isoLeftDerivedObj_hom_naturality 📋 Mathlib.CategoryTheory.Abelian.LeftDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.ProjectiveResolution X) (Q : CategoryTheory.ProjectiveResolution Y) (φ : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp (φ.f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) : CategoryTheory.CategoryStruct.comp ((F.leftDerived n).map f) (Q.isoLeftDerivedObj F n).hom = CategoryTheory.CategoryStruct.comp (P.isoLeftDerivedObj F n).hom (((F.mapHomologicalComplex (ComplexShape.down ℕ)).comp (HomologicalComplex.homologyFunctor D (ComplexShape.down ℕ) n)).map φ) - CategoryTheory.ProjectiveResolution.isoLeftDerivedObj_inv_naturality 📋 Mathlib.CategoryTheory.Abelian.LeftDerived
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u_1} [CategoryTheory.Category.{v_1, u_1} D] [CategoryTheory.Abelian C] [CategoryTheory.HasProjectiveResolutions C] [CategoryTheory.Abelian D] {X Y : C} (f : X ⟶ Y) (P : CategoryTheory.ProjectiveResolution X) (Q : CategoryTheory.ProjectiveResolution Y) (φ : P.complex ⟶ Q.complex) (comm : CategoryTheory.CategoryStruct.comp (φ.f 0) (Q.π.f 0) = CategoryTheory.CategoryStruct.comp (P.π.f 0) f) (F : CategoryTheory.Functor C D) [F.Additive] (n : ℕ) : CategoryTheory.CategoryStruct.comp (P.isoLeftDerivedObj F n).inv ((F.leftDerived n).map f) = CategoryTheory.CategoryStruct.comp (((F.mapHomologicalComplex (ComplexShape.down ℕ)).comp (HomologicalComplex.homologyFunctor D (ComplexShape.down ℕ) n)).map φ) (Q.isoLeftDerivedObj F n).inv
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