Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit a4f59bd

Browse files
committed
feat(category_theory/subobject): easy facts about the top subobject (#7267)
1 parent 0c721d5 commit a4f59bd

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/category_theory/subobject/lattice.lean

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ instance order_top {X : C} : order_top (subobject X) :=
193193

194194
instance {X : C} : inhabited (subobject X) := ⟨⊤⟩
195195

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
197197

198198
/-- The object underlying `⊤ : subobject B` is (up to isomorphism) `B`. -/
199199
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} :
207207
top_coe_iso_self.inv ≫ (⊤ : subobject B).arrow = 𝟙 B :=
208208
underlying_iso_arrow _
209209

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 :=
211212
quotient.sound' ⟨mono_over.map_top f⟩
212213

213214
lemma top_factors {A B : C} (f : A ⟶ B) : (⊤ : subobject B).factors f :=
214215
⟨f, comp_id _⟩
215216

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+
216233
section
217234
variables [has_pullbacks C]
218235

0 commit comments

Comments
 (0)