@@ -9,6 +9,7 @@ public import Mathlib.CategoryTheory.Limits.Preserves.Ulift
99public import Mathlib.CategoryTheory.Sites.Canonical
1010public import Mathlib.CategoryTheory.Sites.Whiskering
1111public import Mathlib.CategoryTheory.Limits.Shapes.DisjointCoproduct
12+ public import Mathlib.CategoryTheory.Sites.Continuous
1213/-!
1314
1415# Subcanonical Grothendieck topologies
@@ -326,4 +327,23 @@ lemma preservesColimitsOfShape_yoneda_of_ofArrows_inj_mem {ι : Type*}
326327 refine isColimitCofanMkYoneda _ _ (hcov hc) htriv fun hij Y a b hab ↦ ⟨?_⟩
327328 exact .ofCoproductDisjointOfCommSq hij hc _ _ hab
328329
330+ variable {D : Type *} [Category.{v'} D] (F : C ⥤ D) (J : GrothendieckTopology C)
331+ (K : GrothendieckTopology D)
332+
333+ lemma subcanonical_of_full_of_faithful [F.Full] [F.Faithful]
334+ [Functor.IsContinuous.{max v v'} F J K] [K.Subcanonical] :
335+ J.Subcanonical := by
336+ refine .of_isSheaf_yoneda_obj _ fun Y ↦ ?_
337+ suffices h : Presieve.IsSheaf J (CategoryTheory.uliftYoneda.{v'}.obj Y) by
338+ rwa [Presieve.isSheaf_iff_of_nat_equiv]
339+ · intro
340+ exact Equiv.ulift.symm
341+ · intros
342+ rfl
343+ rw [← isSheaf_iff_isSheaf_of_type, Presheaf.isSheaf_of_iso_iff
344+ ((Functor.FullyFaithful.ofFullyFaithful F).compUliftYonedaCompWhiskeringLeft.app Y).symm]
345+ refine F.op_comp_isSheaf_of_isSheaf J K _ ?_
346+ rw [isSheaf_iff_isSheaf_of_type]
347+ apply GrothendieckTopology.Subcanonical.isSheaf_of_isRepresentable
348+
329349end CategoryTheory.GrothendieckTopology
0 commit comments