@@ -181,6 +181,29 @@ lemma overEquiv_functorPullback_map {X Y : C} (f : X ⟶ Y) (U : Over X)
181181 rw [Sieve.overEquiv_iff, Sieve.overEquiv_iff]
182182 simp [Presieve.functorPullback, heq]
183183
184+ set_option backward.isDefEq.respectTransparency false in
185+ lemma overEquiv_functorPullback_post {D : Type *} [Category* D] (F : C ⥤ D) {X : C}
186+ (U : Over X) (S : Sieve ((Over.post F).obj U)) :
187+ (Sieve.overEquiv U) (Sieve.functorPullback (Over.post F) S) =
188+ Sieve.functorPullback F ((Sieve.overEquiv ((Over.post F).obj U)) S) := by
189+ refine le_antisymm ?_ ?_
190+ · dsimp [Sieve.overEquiv]
191+ rw [Sieve.functorPushforward_le_iff_le_functorPullback, ← Sieve.functorPullback_comp]
192+ simp_rw [← CategoryTheory.Over.post_forget_eq_forget_comp, Sieve.functorPullback_comp]
193+ exact Sieve.functorPullback_monotone _ _ (Sieve.le_functorPushforward_pullback _ _)
194+ · intro Z g hg
195+ rw [Sieve.overEquiv_iff]
196+ dsimp [Presieve.functorPullback]
197+ convert (Sieve.overEquiv_iff _ _).mp hg
198+ simp
199+
200+ set_option backward.isDefEq.respectTransparency false in
201+ lemma overEquiv_functorPushforward_post {D : Type *} [Category* D] (F : C ⥤ D) {X : C}
202+ (U : Over X) (S : Sieve U) :
203+ (Sieve.overEquiv _) (Sieve.functorPushforward (Over.post F) S) =
204+ Sieve.functorPushforward F ((Sieve.overEquiv _) S) := by
205+ simp [Sieve.overEquiv, ← Sieve.functorPushforward_comp, ← Over.post_forget_eq_forget_comp]
206+
184207end Sieve
185208
186209variable (J : GrothendieckTopology C)
@@ -273,6 +296,23 @@ instance {X Y : C} (f : X ⟶ Y) : (Over.map f).IsCocontinuous (J.over _) (J.ove
273296 rw [J.mem_over_iff] at hS ⊢
274297 rwa [Sieve.overEquiv_functorPullback_map]
275298
299+ instance {D : Type*} [Category* D] (K : GrothendieckTopology D)
300+ (F : C ⥤ D) (X : C) [F.IsCocontinuous J K] :
301+ (Over.post (X := X) F).IsCocontinuous (J.over X) (K.over _) where
302+ cover_lift {U} S hS := by
303+ rw [GrothendieckTopology.mem_over_iff] at hS ⊢
304+ rw [Sieve.overEquiv_functorPullback_post]
305+ exact F.cover_lift J K hS
306+
307+ variable {J} in
308+ lemma _root_.CategoryTheory.CoverPreserving.overPost {D : Type *} [Category* D]
309+ {K : GrothendieckTopology D} {F : C ⥤ D} (X : C) (h : CoverPreserving J K F) :
310+ CoverPreserving (J.over X) (K.over _) (Over.post (X := X) F) where
311+ cover_preserve {U} S hS := by
312+ rw [GrothendieckTopology.mem_over_iff] at hS ⊢
313+ rw [Sieve.overEquiv_functorPushforward_post]
314+ exact h.cover_preserve hS
315+
276316open Limits
277317
278318lemma coverPreserving_overPullback [HasPullbacks C] {X Y : C} (f : X ⟶ Y) :
0 commit comments