@@ -86,7 +86,49 @@ lemma biprod_inr_snd_f (i : ι) :
8686 (biprod.inr : L ⟶ K ⊞ L).f i ≫ (biprod.snd : K ⊞ L ⟶ L).f i = 𝟙 _ := by
8787 rw [← comp_f, biprod.inr_snd, id_f]
8888
89+ @[simp]
90+ lemma biprod_total_f (i : ι) :
91+ (biprod.fst : K ⊞ L ⟶ K).f i ≫ (biprod.inl : K ⟶ K ⊞ L).f i +
92+ (biprod.snd : K ⊞ L ⟶ L).f i ≫ (biprod.inr : L ⟶ K ⊞ L).f i =
93+ 𝟙 ((biprod K L).X i) := by
94+ simp [← comp_f, ← add_f_apply]
95+
8996variable {K L}
97+
98+ section
99+
100+ variable {A : C} {i : ι}
101+
102+ lemma biprodX_ext_from_iff {f g : (K ⊞ L).X i ⟶ A} :
103+ f = g ↔ (biprod.inl : K ⟶ K ⊞ L).f i ≫ f = (biprod.inl : K ⟶ K ⊞ L).f i ≫ g ∧
104+ (biprod.inr : L ⟶ K ⊞ L).f i ≫ f = (biprod.inr : L ⟶ K ⊞ L).f i ≫ g := by
105+ refine ⟨by rintro rfl; simp, fun ⟨h₁, h₂⟩ ↦ ?_⟩
106+ rw [← cancel_epi (𝟙 _)]
107+ simp [← biprod_total_f, h₁, h₂]
108+
109+ @[ext]
110+ lemma biprodX_ext_from {f g : (K ⊞ L).X i ⟶ A}
111+ (h₁ : (biprod.inl : K ⟶ K ⊞ L).f i ≫ f = (biprod.inl : K ⟶ K ⊞ L).f i ≫ g)
112+ (h₂ : (biprod.inr : L ⟶ K ⊞ L).f i ≫ f = (biprod.inr : L ⟶ K ⊞ L).f i ≫ g) :
113+ f = g := by
114+ simp [biprodX_ext_from_iff, h₁, h₂]
115+
116+ lemma biprodX_ext_to_iff {f g : A ⟶ (K ⊞ L).X i} :
117+ f = g ↔ f ≫ (biprod.fst : K ⊞ L ⟶ K).f i = g ≫ (biprod.fst : K ⊞ L ⟶ K).f i ∧
118+ f ≫ (biprod.snd : K ⊞ L ⟶ L).f i = g ≫ (biprod.snd : K ⊞ L ⟶ L).f i := by
119+ refine ⟨by rintro rfl; simp, fun ⟨h₁, h₂⟩ ↦ ?_⟩
120+ rw [← cancel_mono (𝟙 _)]
121+ simp [← biprod_total_f, reassoc_of% h₁, reassoc_of% h₂]
122+
123+ @[ext]
124+ lemma biprodX_ext_to {f g : A ⟶ (K ⊞ L).X i}
125+ (h₁ : f ≫ (biprod.fst : K ⊞ L ⟶ K).f i = g ≫ (biprod.fst : K ⊞ L ⟶ K).f i)
126+ (h₂ : f ≫ (biprod.snd : K ⊞ L ⟶ L).f i = g ≫ (biprod.snd : K ⊞ L ⟶ L).f i) :
127+ f = g := by
128+ simp [biprodX_ext_to_iff, h₁, h₂]
129+
130+ end
131+
90132variable {M : HomologicalComplex C c}
91133
92134@ [reassoc (attr := simp)]
0 commit comments