@@ -102,14 +102,13 @@ def isColimitOfEffectiveEpiStruct {X Y : C} (f : Y ⟶ X) (Hf : EffectiveEpiStru
102102 fac := by
103103 rintro S ⟨T, g, hT⟩
104104 dsimp
105- sorry /-
106- nth_rewrite 1 [← hT, Category.assoc, Hf.fac]
105+ simp only [← hT, Category.assoc, Hf.fac]
107106 let y : D := ⟨Over.mk f, 𝟙 _, by simp⟩
108107 let x : D := ⟨Over.mk T.hom, g, hT⟩
109108 let g' : x ⟶ y := ObjectProperty.homMk (Over.homMk g)
110109 change F.map g' ≫ _ = _
111110 rw [S.w]
112- rfl-/
111+ rfl
113112 uniq := by
114113 intro S m hm
115114 dsimp
@@ -139,27 +138,21 @@ def effectiveEpiStructOfIsColimit {X Y : C} (f : Y ⟶ X)
139138 apply h
140139 rw [Category.assoc, hB.choose_spec, hA.choose_spec, Over.w] } }
141140 { desc := fun {_} e h => Hf.desc (aux e h)
142- fac := by
143- intro W e h
144- sorry /-
145- dsimp +instances
141+ fac {W} e h := by
146142 have := Hf.fac (aux e h) ⟨Over.mk f, 𝟙 _, by simp⟩
147143 dsimp [aux] at this; rw [this]; clear this
148144 nth_rewrite 2 [← Category.id_comp e]
149145 apply h
150146 generalize_proofs hh
151- rw [hh.choose_spec, Category.id_comp] -/
152- uniq := by
153- intro W e h m hm
154- sorry /-
155- dsimp +instances
147+ rw [hh.choose_spec, Category.id_comp]
148+ uniq {W} e h m hm := by
156149 apply Hf.uniq (aux e h)
157150 rintro ⟨A, g, hA⟩
158151 dsimp
159- nth_rewrite 1 [← hA, Category.assoc, hm]
152+ simp only [← hA, Category.assoc, hm]
160153 apply h
161154 generalize_proofs hh
162- rwa [ hh.choose_spec ] -/ }
155+ rwa [hh.choose_spec] }
163156
164157theorem Sieve.effectiveEpimorphic_singleton {X Y : C} (f : Y ⟶ X) :
165158 (Presieve.singleton f).EffectiveEpimorphic ↔ (EffectiveEpi f) := by
@@ -225,14 +218,13 @@ def isColimitOfEffectiveEpiFamilyStruct {B : C} {α : Type*}
225218 fac := by
226219 intro S ⟨T, a, (g : T.left ⟶ X a), hT⟩
227220 dsimp
228- sorry /-
229- nth_rewrite 1 [← hT, Category.assoc, H.fac]
221+ simp only [← hT, Category.assoc, H.fac]
230222 let A : D := ⟨Over.mk (π a), a, 𝟙 _, by simp⟩
231223 let B : D := ⟨Over.mk T.hom, a, g, hT⟩
232224 let i : B ⟶ A := ObjectProperty.homMk (Over.homMk g)
233225 change F.map i ≫ _ = _
234226 rw [S.w]
235- rfl-/
227+ rfl
236228 uniq := by
237229 intro S m hm; dsimp
238230 apply H.uniq
@@ -256,34 +248,29 @@ def effectiveEpiFamilyStructOfIsColimit {B : C} {α : Type*}
256248 Cocone (Sieve.generateFamily X π).arrows.diagram := {
257249 pt := W
258250 ι := {
259- app := fun ⟨_,hT⟩ => hT.choose_spec.choose ≫ e hT.choose
251+ app := fun ⟨_, hT⟩ => hT.choose_spec.choose ≫ e hT.choose
260252 naturality := by
261253 rintro ⟨A, a, (g₁ : A.left ⟶ _), ha⟩ ⟨B, b, (g₂ : B.left ⟶ _), hb⟩ ⟨q : A ⟶ B⟩
262254 dsimp; rw [Category.comp_id, ← Category.assoc]
263255 apply h; rw [Category.assoc]
264256 generalize_proofs h1 h2 h3 h4
265257 rw [h2.choose_spec, h4.choose_spec, Over.w] } }
266258 { desc := fun {_} e h => H.desc (aux e h)
267- fac := by
268- intro W e h a
269- sorry /-
270- dsimp +instances
259+ fac {W} e h a := by
271260 have := H.fac (aux e h) ⟨Over.mk (π a), a, 𝟙 _, by simp⟩
272261 dsimp [aux] at this; rw [this]; clear this
273262 conv_rhs => rw [← Category.id_comp (e a)]
274263 apply h
275264 generalize_proofs h1 h2
276- rw [h2.choose_spec, Category.id_comp]-/
277- uniq := by
278- intro W e h m hm
265+ rw [h2.choose_spec, Category.id_comp]
266+ uniq {W} e h m hm := by
279267 apply H.uniq (aux e h)
280268 rintro ⟨T, a, (g : T.left ⟶ _), ha⟩
281269 dsimp
282- sorry /-
283- nth_rewrite 1 [← ha, Category.assoc, hm]
270+ simp only [← ha, Category.assoc, hm]
284271 apply h
285272 generalize_proofs h1 h2
286- rwa [ h2.choose_spec ] -/ }
273+ rwa [h2.choose_spec] }
287274
288275theorem Sieve.effectiveEpimorphic_family {B : C} {α : Type *}
289276 (X : α → C) (π : (a : α) → (X a ⟶ B)) :
0 commit comments