@@ -72,6 +72,16 @@ lemma generate_mem_toGrothendieck {X : C} {R : Presieve X} (hR : R ∈ J X) :
7272 Sieve.generate R ∈ J.toGrothendieck X :=
7373 .of _ _ hR
7474
75+ @[gcongr]
76+ lemma toGrothendieck_mono {J K : Precoverage C} (h : J ≤ K) :
77+ J.toGrothendieck ≤ K.toGrothendieck := by
78+ intro X S hS
79+ induction hS with
80+ | of X S hS => exact generate_mem_toGrothendieck (h _ hS)
81+ | top X => simp
82+ | pullback X S _ Y f _ => grind
83+ | transitive X S R _ _ _ _ => grind
84+
7585/--
7686An alternative characterization of the Grothendieck topology associated to a precoverage `J`:
7787it is the infimum of all Grothendieck topologies containing `Sieve.generate S` for all presieves
@@ -213,4 +223,25 @@ lemma Presieve.IsSheaf.isSheafFor_of_mem_precoverage {J : Precoverage C} {P : C
213223 rw [J.isSheaf_toGrothendieck_iff] at h
214224 simpa [Presieve.isSheafFor_iff_generate] using h (f := 𝟙 S) R hR
215225
226+ lemma PreZeroHypercover.isSheafFor_iff_of_iso {F : Cᵒᵖ ⥤ Type *} {S : C} {𝒰 𝒱 : PreZeroHypercover S}
227+ (e : 𝒰 ≅ 𝒱) :
228+ 𝒰.presieve₀.IsSheafFor F ↔ 𝒱.presieve₀.IsSheafFor F := by
229+ rw [Presieve.isSheafFor_iff_generate, ← Sieve.ofArrows, ← PreZeroHypercover.sieve₀,
230+ PreZeroHypercover.sieve₀_eq_of_iso e, ← Presieve.isSheafFor_iff_generate]
231+
232+ lemma Presieve.isSheafFor_ofArrows_comp_iff {F : Cᵒᵖ ⥤ Type *} {X : C} {ι : Type *} {Y Z : ι → C}
233+ (g : ∀ i, Z i ⟶ X) (e : ∀ i, Y i ≅ Z i) :
234+ IsSheafFor F (ofArrows _ (fun i ↦ (e i).hom ≫ g i)) ↔ IsSheafFor F (ofArrows _ g) := by
235+ let 𝒰 : PreZeroHypercover X := ⟨_, _, g⟩
236+ let 𝒱 : PreZeroHypercover X := ⟨_, _, fun i ↦ (e i).hom ≫ g i⟩
237+ let e : 𝒰 ≅ 𝒱 := PreZeroHypercover.isoMk (.refl _) (fun i ↦ (e i).symm)
238+ exact PreZeroHypercover.isSheafFor_iff_of_iso e.symm
239+
240+ lemma Presieve.isSheafFor_singleton_iff_of_iso {F : Cᵒᵖ ⥤ Type *} {S X Y : C} (f : X ⟶ S) (g : Y ⟶ S)
241+ (e : X ≅ Y) (he : e.hom ≫ g = f) :
242+ (singleton f).IsSheafFor F ↔ (singleton g).IsSheafFor F := by
243+ subst he
244+ rw [← Presieve.ofArrows_pUnit.{_, _, 0 }, ← Presieve.ofArrows_pUnit,
245+ Presieve.isSheafFor_ofArrows_comp_iff]
246+
216247end CategoryTheory
0 commit comments