@@ -92,6 +92,58 @@ theorem ext {C₁ C₂ : HomologicalComplex V c} (h_X : C₁.X = C₂.X)
92
92
· rw [s₁ i j hij, s₂ i j hij]
93
93
#align homological_complex.ext HomologicalComplex.ext
94
94
95
+ /-- The obvious isomorphism `K.X p ≅ K.X q` when `p = q`. -/
96
+ def XIsoOfEq (K : HomologicalComplex V c) {p q : ι} (h : p = q) :
97
+ K.X p ≅ K.X q := eqToIso (by rw [h])
98
+
99
+ @[simp]
100
+ lemma XIsoOfEq_rfl (K : HomologicalComplex V c) (p : ι) :
101
+ K.XIsoOfEq (rfl : p = p) = Iso.refl _ := rfl
102
+
103
+ @[reassoc (attr := simp)]
104
+ lemma XIsoOfEq_hom_comp_XIsoOfEq_hom (K : HomologicalComplex V c) {p₁ p₂ p₃ : ι}
105
+ (h₁₂ : p₁ = p₂) (h₂₃ : p₂ = p₃) :
106
+ (K.XIsoOfEq h₁₂).hom ≫ (K.XIsoOfEq h₂₃).hom = (K.XIsoOfEq (h₁₂.trans h₂₃)).hom := by
107
+ dsimp [XIsoOfEq]
108
+ simp only [eqToHom_trans]
109
+
110
+ @[reassoc (attr := simp)]
111
+ lemma XIsoOfEq_hom_comp_XIsoOfEq_inv (K : HomologicalComplex V c) {p₁ p₂ p₃ : ι}
112
+ (h₁₂ : p₁ = p₂) (h₃₂ : p₃ = p₂) :
113
+ (K.XIsoOfEq h₁₂).hom ≫ (K.XIsoOfEq h₃₂).inv = (K.XIsoOfEq (h₁₂.trans h₃₂.symm)).hom := by
114
+ dsimp [XIsoOfEq]
115
+ simp only [eqToHom_trans]
116
+
117
+ @[reassoc (attr := simp)]
118
+ lemma XIsoOfEq_inv_comp_XIsoOfEq_hom (K : HomologicalComplex V c) {p₁ p₂ p₃ : ι}
119
+ (h₂₁ : p₂ = p₁) (h₂₃ : p₂ = p₃) :
120
+ (K.XIsoOfEq h₂₁).inv ≫ (K.XIsoOfEq h₂₃).hom = (K.XIsoOfEq (h₂₁.symm.trans h₂₃)).hom := by
121
+ dsimp [XIsoOfEq]
122
+ simp only [eqToHom_trans]
123
+
124
+ @[reassoc (attr := simp)]
125
+ lemma XIsoOfEq_inv_comp_XIsoOfEq_inv (K : HomologicalComplex V c) {p₁ p₂ p₃ : ι}
126
+ (h₂₁ : p₂ = p₁) (h₃₂ : p₃ = p₂) :
127
+ (K.XIsoOfEq h₂₁).inv ≫ (K.XIsoOfEq h₃₂).inv = (K.XIsoOfEq (h₃₂.trans h₂₁).symm).hom := by
128
+ dsimp [XIsoOfEq]
129
+ simp only [eqToHom_trans]
130
+
131
+ @[reassoc (attr := simp)]
132
+ lemma XIsoOfEq_hom_comp_d (K : HomologicalComplex V c) {p₁ p₂ : ι} (h : p₁ = p₂) (p₃ : ι) :
133
+ (K.XIsoOfEq h).hom ≫ K.d p₂ p₃ = K.d p₁ p₃ := by subst h; simp
134
+
135
+ @[reassoc (attr := simp)]
136
+ lemma XIsoOfEq_inv_comp_d (K : HomologicalComplex V c) {p₂ p₁ : ι} (h : p₂ = p₁) (p₃ : ι) :
137
+ (K.XIsoOfEq h).inv ≫ K.d p₂ p₃ = K.d p₁ p₃ := by subst h; simp
138
+
139
+ @[reassoc (attr := simp)]
140
+ lemma d_comp_XIsoOfEq_hom (K : HomologicalComplex V c) {p₂ p₃ : ι} (h : p₂ = p₃) (p₁ : ι) :
141
+ K.d p₁ p₂ ≫ (K.XIsoOfEq h).hom = K.d p₁ p₃ := by subst h; simp
142
+
143
+ @[reassoc (attr := simp)]
144
+ lemma d_comp_XIsoOfEq_inv (K : HomologicalComplex V c) {p₂ p₃ : ι} (h : p₃ = p₂) (p₁ : ι) :
145
+ K.d p₁ p₂ ≫ (K.XIsoOfEq h).inv = K.d p₁ p₃ := by subst h; simp
146
+
95
147
end HomologicalComplex
96
148
97
149
/-- An `α`-indexed chain complex is a `HomologicalComplex`
0 commit comments