Skip to content

Commit 4dd3701

Browse files
committed
feat: full subcategory for a small set is essentially small (#10922)
1 parent 6af752e commit 4dd3701

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

Mathlib/CategoryTheory/EssentiallySmall.lean

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -101,21 +101,13 @@ class LocallySmall (C : Type u) [Category.{v} C] : Prop where
101101
instance (C : Type u) [Category.{v} C] [LocallySmall.{w} C] (X Y : C) : Small (X ⟶ Y) :=
102102
LocallySmall.hom_small X Y
103103

104+
theorem locallySmall_of_faithful {C : Type u} [Category.{v} C] {D : Type u'} [Category.{v'} D]
105+
(F : C ⥤ D) [Faithful F] [LocallySmall.{w} D] : LocallySmall.{w} C where
106+
hom_small {_ _} := small_of_injective F.map_injective
107+
104108
theorem locallySmall_congr {C : Type u} [Category.{v} C] {D : Type u'} [Category.{v'} D]
105-
(e : C ≌ D) : LocallySmall.{w} C ↔ LocallySmall.{w} D := by
106-
fconstructor
107-
· rintro ⟨L⟩
108-
fconstructor
109-
intro X Y
110-
specialize L (e.inverse.obj X) (e.inverse.obj Y)
111-
refine' (small_congr _).mpr L
112-
exact equivOfFullyFaithful e.inverse
113-
· rintro ⟨L⟩
114-
fconstructor
115-
intro X Y
116-
specialize L (e.functor.obj X) (e.functor.obj Y)
117-
refine' (small_congr _).mpr L
118-
exact equivOfFullyFaithful e.functor
109+
(e : C ≌ D) : LocallySmall.{w} C ↔ LocallySmall.{w} D :=
110+
fun _ => locallySmall_of_faithful e.inverse, fun _ => locallySmall_of_faithful e.functor⟩
119111
#align category_theory.locally_small_congr CategoryTheory.locallySmall_congr
120112

121113
instance (priority := 100) locallySmall_self (C : Type u) [Category.{v} C] : LocallySmall.{v} C
@@ -249,6 +241,19 @@ theorem essentiallySmall_of_small_of_locallySmall [Small.{w} C] [LocallySmall.{w
249241
EssentiallySmall.{w} C :=
250242
(essentiallySmall_iff C).2 ⟨small_of_surjective Quotient.exists_rep, by infer_instance⟩
251243

244+
section FullSubcategory
245+
246+
instance locallySmall_fullSubcategory [LocallySmall.{w} C] (P : C → Prop) :
247+
LocallySmall.{w} (FullSubcategory P) :=
248+
locallySmall_of_faithful <| fullSubcategoryInclusion P
249+
250+
instance essentiallySmall_fullSubcategory_mem (s : Set C) [Small.{w} s] [LocallySmall.{w} C] :
251+
EssentiallySmall.{w} (FullSubcategory (· ∈ s)) :=
252+
suffices Small.{w} (FullSubcategory (· ∈ s)) from essentiallySmall_of_small_of_locallySmall _
253+
small_of_injective (f := fun x => (⟨x.1, x.2⟩ : s)) (by aesop_cat)
254+
255+
end FullSubcategory
256+
252257
/-- Any thin category is locally small.
253258
-/
254259
instance (priority := 100) locallySmall_of_thin {C : Type u} [Category.{v} C] [Quiver.IsThin C] :

0 commit comments

Comments
 (0)