@@ -193,7 +193,7 @@ instance order_top {X : C} : order_top (subobject X) :=
193
193
194
194
instance {X : C} : inhabited (subobject X) := ⟨⊤⟩
195
195
196
- lemma top_eq_id { B : C} : (⊤ : subobject B) = subobject.mk (𝟙 B) := rfl
196
+ lemma top_eq_id ( B : C) : (⊤ : subobject B) = subobject.mk (𝟙 B) := rfl
197
197
198
198
/-- The object underlying `⊤ : subobject B` is (up to isomorphism) `B`. -/
199
199
def top_coe_iso_self {B : C} : ((⊤ : subobject B) : C) ≅ B := underlying_iso _
@@ -207,12 +207,29 @@ lemma underlying_iso_inv_top_arrow {B : C} :
207
207
top_coe_iso_self.inv ≫ (⊤ : subobject B).arrow = 𝟙 B :=
208
208
underlying_iso_arrow _
209
209
210
- lemma map_top (f : X ⟶ Y) [mono f] : (map f).obj ⊤ = quotient.mk' (mono_over.mk' f) :=
210
+ @[simp]
211
+ lemma map_top (f : X ⟶ Y) [mono f] : (map f).obj ⊤ = subobject.mk f :=
211
212
quotient.sound' ⟨mono_over.map_top f⟩
212
213
213
214
lemma top_factors {A B : C} (f : A ⟶ B) : (⊤ : subobject B).factors f :=
214
215
⟨f, comp_id _⟩
215
216
217
+ lemma is_iso_iff_mk_eq_top {X Y : C} (f : X ⟶ Y) [mono f] : is_iso f ↔ mk f = ⊤ :=
218
+ ⟨λ _, by exactI mk_eq_mk_of_comm _ _ (as_iso f) (category.comp_id _), λ h,
219
+ by { rw [←of_mk_le_mk_comp h.le, category.comp_id], exact is_iso.of_iso (iso_of_mk_eq_mk _ _ h) }⟩
220
+
221
+ lemma is_iso_arrow_iff_eq_top {Y : C} (P : subobject Y) : is_iso P.arrow ↔ P = ⊤ :=
222
+ by rw [is_iso_iff_mk_eq_top, mk_arrow]
223
+
224
+ instance is_iso_top_arrow {Y : C} : is_iso (⊤ : subobject Y).arrow :=
225
+ by rw is_iso_arrow_iff_eq_top
226
+
227
+ lemma mk_eq_top_of_is_iso {X Y : C} (f : X ⟶ Y) [is_iso f] : mk f = ⊤ :=
228
+ (is_iso_iff_mk_eq_top f).mp infer_instance
229
+
230
+ lemma eq_top_of_is_iso_arrow {Y : C} (P : subobject Y) [is_iso P.arrow] : P = ⊤ :=
231
+ (is_iso_arrow_iff_eq_top P).mp infer_instance
232
+
216
233
section
217
234
variables [has_pullbacks C]
218
235
0 commit comments