File: Mathlib/CategoryTheory/Sites/InducedTopology.lean

full_name: CategoryTheory.Functor.LocallyCoverDense.functorPushforward_functorPullback_mem
code: /-- We say that a functor `C ⥤ D` into a site is "locally dense" if
for each covering sieve `T` in `D`, `T ∩ mor(C)` generates a covering sieve in `D`.
-/
class LocallyCoverDense : Prop where
  functorPushforward_functorPullback_mem :
    ∀ ⦃X : C⦄ (T : K (G.obj X)), (T.val.functorPullback G).functorPushforward G ∈ K (G.obj X)
goal: CategoryTheory.Sieve.functorPushforward G (CategoryTheory.Sieve.functorPullback G ↑T) ∈ K.sieves (G.obj X)

full_name: CategoryTheory.Functor.LocallyCoverDense
code: /-- We say that a functor `C ⥤ D` into a site is "locally dense" if
for each covering sieve `T` in `D`, `T ∩ mor(C)` generates a covering sieve in `D`.
-/
class LocallyCoverDense : Prop where
  functorPushforward_functorPullback_mem :
    ∀ ⦃X : C⦄ (T : K (G.obj X)), (T.val.functorPullback G).functorPushforward G ∈ K (G.obj X)
goal: Prop

full_name: CategoryTheory.Functor.pushforward_cover_iff_cover_pullback
code: theorem pushforward_cover_iff_cover_pullback [G.Full] [G.Faithful] {X : C} (S : Sieve X) :
    K _ (S.functorPushforward G) ↔ ∃ T : K (G.obj X), T.val.functorPullback G = S 
goal: K.sieves (G.obj X) (CategoryTheory.Sieve.functorPushforward G S) ↔ ∃ T, CategoryTheory.Sieve.functorPullback G ↑T = S

full_name: CategoryTheory.Functor.inducedTopology
code: /-- If a functor `G : C ⥤ (D, K)` is fully faithful and locally dense,
then the set `{ T ∩ mor(C) | T ∈ K }` is a grothendieck topology of `C`.
-/
@[simps]
def inducedTopology : GrothendieckTopology C 
goal: CategoryTheory.GrothendieckTopology C

full_name: CategoryTheory.Functor.inducedTopology_sieves
code: /-- If a functor `G : C ⥤ (D, K)` is fully faithful and locally dense,
then the set `{ T ∩ mor(C) | T ∈ K }` is a grothendieck topology of `C`.
-/
@[simps]
def inducedTopology : GrothendieckTopology C 
goal: (G.inducedTopology K).sieves X S = K.sieves (G.obj X) (CategoryTheory.Sieve.functorPushforward G S)

full_name: CategoryTheory.Functor.inducedTopology_isCocontinuous
code: /-- `G` is cover-lifting wrt the induced topology. -/
instance inducedTopology_isCocontinuous : G.IsCocontinuous (G.inducedTopology K) K 
goal: G.IsCocontinuous (G.inducedTopology K) K

full_name: CategoryTheory.Functor.inducedTopology_coverPreserving
code: /-- `G` is cover-preserving wrt the induced topology. -/
theorem inducedTopology_coverPreserving : CoverPreserving (G.inducedTopology K) K G 
goal: CategoryTheory.CoverPreserving (G.inducedTopology K) K G

full_name: CategoryTheory.Functor.locallyCoverDense_of_isCoverDense
code: instance (priority := 900) locallyCoverDense_of_isCoverDense [G.IsCoverDense K] :
    G.LocallyCoverDense K 
goal: G.LocallyCoverDense K

full_name: CategoryTheory.Functor.instIsDenseSubsiteInducedTopologyOfIsCoverDense
code: instance (priority := 900) [G.IsCoverDense K] : G.IsDenseSubsite (G.inducedTopology K) K 
goal: CategoryTheory.Functor.IsDenseSubsite (G.inducedTopology K) K G

full_name: CategoryTheory.Functor.over_forget_locallyCoverDense
code: instance over_forget_locallyCoverDense (X : C) : (Over.forget X).LocallyCoverDense J 
goal: (CategoryTheory.Over.forget X).LocallyCoverDense J

full_name: CategoryTheory.Functor.sheafInducedTopologyEquivOfIsCoverDense
code: /-- Cover-dense functors induces an equivalence of categories of sheaves.

This is known as the comparison lemma. It requires that the sites are small and the value category
is complete.
-/
noncomputable def sheafInducedTopologyEquivOfIsCoverDense
    [G.IsCoverDense K] [∀ (X : Dᵒᵖ), HasLimitsOfShape (StructuredArrow X G.op) A] :
    Sheaf (G.inducedTopology K) A ≌ Sheaf K A 
goal: CategoryTheory.Sheaf (G.inducedTopology K) A ≌ CategoryTheory.Sheaf K A