@@ -23,15 +23,80 @@ public section
2323open CategoryTheory
2424
2525variable {C ι : Type *} [Category* C] [Abelian C] {c : ComplexShape ι}
26- (K : HomologicalComplex C c)
26+ (K L : HomologicalComplex C c) (φ : K ⟶ L )
2727
2828namespace HomologicalComplex
2929
30+ lemma exactAt_iff_exact_up_to_refinements (i j k : ι) (hi : c.prev j = i) (hk : c.next j = k) :
31+ K.ExactAt j ↔ ∀ ⦃A : C⦄ (x₂ : A ⟶ K.X j) (_ : x₂ ≫ K.d j k = 0 ),
32+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₁ : A' ⟶ K.X i), π ≫ x₂ = x₁ ≫ K.d i j := by
33+ rw [K.exactAt_iff' i j k hi hk]
34+ exact (K.sc' i j k).exact_iff_exact_up_to_refinements
35+
3036lemma eq_liftCycles_homologyπ_up_to_refinements {A : C} {i : ι} (γ : A ⟶ K.homology i)
3137 (j : ι) (hj : c.next i = j) :
3238 ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (z : A' ⟶ K.X i) (hz : z ≫ K.d i j = 0 ),
3339 π ≫ γ = K.liftCycles z j hj hz ≫ K.homologyπ i := by
3440 subst hj
3541 exact (K.sc i).eq_liftCycles_homologyπ_up_to_refinements γ
3642
43+ lemma liftCycles_comp_homologyπ_eq_zero_iff_up_to_refinements
44+ (i j k : ι) (hi : c.prev j = i) (hk : c.next j = k)
45+ {A : C} (x₂ : A ⟶ K.X j) (hx₂ : x₂ ≫ K.d j k = 0 ) :
46+ K.liftCycles x₂ k hk hx₂ ≫ K.homologyπ j = 0 ↔
47+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₁ : A' ⟶ K.X i), π ≫ x₂ = x₁ ≫ K.d i j := by
48+ subst hi hk
49+ exact (K.sc j).liftCycles_comp_homologyπ_eq_zero_iff_up_to_refinements x₂ hx₂
50+
51+ lemma liftCycles_comp_homologyπ_eq_iff_up_to_refinements
52+ (i j k : ι) (hi : c.prev j = i) (hk : c.next j = k)
53+ {A : C} (x₂ x₂' : A ⟶ K.X j) (hx₂ : x₂ ≫ K.d j k = 0 ) (hx₂' : x₂' ≫ K.d j k = 0 ) :
54+ K.liftCycles x₂ k hk hx₂ ≫ K.homologyπ j = K.liftCycles x₂' k hk hx₂' ≫ K.homologyπ j ↔
55+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₁ : A' ⟶ K.X i), π ≫ x₂ = π ≫ x₂' + x₁ ≫ K.d i j := by
56+ subst hi hk
57+ exact (K.sc j).liftCycles_comp_homologyπ_eq_iff_up_to_refinements x₂ x₂' hx₂ hx₂'
58+
59+ lemma comp_homologyπ_eq_zero_iff_up_to_refinements
60+ (i j : ι) (hi : c.prev j = i)
61+ {A : C} (z₂ : A ⟶ K.cycles j) : z₂ ≫ K.homologyπ j = 0 ↔
62+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₁ : A' ⟶ K.X i), π ≫ z₂ = x₁ ≫ K.toCycles i j := by
63+ subst hi
64+ exact (K.sc j).comp_homologyπ_eq_zero_iff_up_to_refinements z₂
65+
66+ lemma comp_homologyπ_eq_iff_up_to_refinements
67+ (i j : ι) (hi : c.prev j = i)
68+ {A : C} (z₂ z₂' : A ⟶ K.cycles j) : z₂ ≫ K.homologyπ j = z₂' ≫ K.homologyπ j ↔
69+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₁ : A' ⟶ K.X i),
70+ π ≫ z₂ = π ≫ z₂' + x₁ ≫ K.toCycles i j:= by
71+ subst hi
72+ exact (K.sc j).comp_homologyπ_eq_iff_up_to_refinements z₂ z₂'
73+
74+ lemma comp_pOpcycles_eq_zero_iff_up_to_refinements
75+ {A : C} {i : ι} (z : A ⟶ K.X i) (j : ι) (hj : c.prev i = j) :
76+ z ≫ K.pOpcycles i = 0 ↔
77+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x : A' ⟶ K.X j), π ≫ z = x ≫ K.d j i := by
78+ subst hj
79+ apply (K.sc i).comp_pOpcycles_eq_zero_iff_up_to_refinements
80+
81+ variable {K L}
82+
83+ lemma mono_homologyMap_iff_up_to_refinements
84+ (i j k : ι) (hi : c.prev j = i) (hk : c.next j = k) :
85+ Mono (homologyMap φ j) ↔
86+ ∀ ⦃A : C⦄ (x₂ : A ⟶ K.X j) (_ : x₂ ≫ K.d j k = 0 ) (y₁ : A ⟶ L.X i)
87+ (_ : x₂ ≫ φ.f j = y₁ ≫ L.d i j),
88+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₁ : A' ⟶ K.X i),
89+ π ≫ x₂ = x₁ ≫ K.d i j := by
90+ subst hi hk
91+ apply ShortComplex.mono_homologyMap_iff_up_to_refinements
92+
93+ lemma epi_homologyMap_iff_up_to_refinements
94+ (i j k : ι) (hi : c.prev j = i) (hk : c.next j = k) :
95+ Epi (homologyMap φ j) ↔
96+ ∀ ⦃A : C⦄ (y₂ : A ⟶ L.X j) (_ : y₂ ≫ L.d j k = 0 ),
97+ ∃ (A' : C) (π : A' ⟶ A) (_ : Epi π) (x₂ : A' ⟶ K.X j) (_ : x₂ ≫ K.d j k = 0 )
98+ (y₁ : A' ⟶ L.X i), π ≫ y₂ = x₂ ≫ φ.f j + y₁ ≫ L.d i j := by
99+ subst hi hk
100+ apply ShortComplex.epi_homologyMap_iff_up_to_refinements
101+
37102end HomologicalComplex
0 commit comments