File: Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean

full_name: CategoryTheory.coherentTopology.instIsCoverDense
code: instance : F.IsCoverDense (coherentTopology _) 
goal: F.IsCoverDense (CategoryTheory.coherentTopology D)

full_name: CategoryTheory.coherentTopology.exists_effectiveEpiFamily_iff_mem_induced
code: theorem exists_effectiveEpiFamily_iff_mem_induced (X : C) (S : Sieve X) :
    (∃ (α : Type) (_ : Finite α) (Y : α → C) (π : (a : α) → (Y a ⟶ X)),
      EffectiveEpiFamily Y π ∧ (∀ a : α, (S.arrows) (π a)) ) ↔
    (S ∈ F.inducedTopology (coherentTopology _) X) 
goal: (∃ α, ∃ (_ : Finite α), ∃ Y π, CategoryTheory.EffectiveEpiFamily Y π ∧ ∀ (a : α), S.arrows (π a)) ↔
  S ∈ (F.inducedTopology (CategoryTheory.coherentTopology D)).sieves X

full_name: CategoryTheory.coherentTopology.eq_induced
code: lemma eq_induced : haveI := F.reflects_precoherent
    coherentTopology C =
      F.inducedTopology (coherentTopology _) 
goal: CategoryTheory.coherentTopology C = F.inducedTopology (CategoryTheory.coherentTopology D)

full_name: CategoryTheory.coherentTopology.instIsDenseSubsite
code: instance : haveI := F.reflects_precoherent;
    F.IsDenseSubsite (coherentTopology C) (coherentTopology D) 
goal: CategoryTheory.Functor.IsDenseSubsite (CategoryTheory.coherentTopology C) (CategoryTheory.coherentTopology D) F

full_name: CategoryTheory.coherentTopology.coverPreserving
code: lemma coverPreserving : haveI := F.reflects_precoherent
    CoverPreserving (coherentTopology _) (coherentTopology _) F 
goal: CategoryTheory.CoverPreserving (CategoryTheory.coherentTopology C) (CategoryTheory.coherentTopology D) F

full_name: CategoryTheory.coherentTopology.equivalence
code: /--
The equivalence from coherent sheaves on `C` to coherent sheaves on `D`, given a fully faithful
functor `F : C ⥤ D` to a precoherent category, which preserves and reflects effective epimorphic
families, and satisfies `F.EffectivelyEnough`.
-/
noncomputable
def equivalence (A : Type u₃) [Category.{v₃} A] [∀ X, HasLimitsOfShape (StructuredArrow X F.op) A] :
    haveI := F.reflects_precoherent
    Sheaf (coherentTopology C) A ≌ Sheaf (coherentTopology D) A 
goal: CategoryTheory.Sheaf (CategoryTheory.coherentTopology C) A ≌ CategoryTheory.Sheaf (CategoryTheory.coherentTopology D) A

full_name: CategoryTheory.coherentTopology.equivalence'
code: /--
The equivalence from coherent sheaves on `C` to coherent sheaves on `D`, given a fully faithful
functor `F : C ⥤ D` to an extensive preregular category, which preserves and reflects effective
epimorphisms and satisfies `F.EffectivelyEnough`.
-/
noncomputable
def equivalence' (A : Type u₃) [Category.{v₃} A]
    [∀ X, HasLimitsOfShape (StructuredArrow X F.op) A] :
    haveI := F.reflects_precoherent
    Sheaf (coherentTopology C) A ≌ Sheaf (coherentTopology D) A 
goal: CategoryTheory.Sheaf (CategoryTheory.coherentTopology C) A ≌ CategoryTheory.Sheaf (CategoryTheory.coherentTopology D) A

full_name: CategoryTheory.regularTopology.instIsCoverDense
code: instance : F.IsCoverDense (regularTopology _) 
goal: F.IsCoverDense (CategoryTheory.regularTopology D)

full_name: CategoryTheory.regularTopology.exists_effectiveEpi_iff_mem_induced
code: theorem exists_effectiveEpi_iff_mem_induced (X : C) (S : Sieve X) :
    (∃ (Y : C) (π : Y ⟶ X),
      EffectiveEpi π ∧ S.arrows π) ↔
    (S ∈ F.inducedTopology (regularTopology _) X) 
goal: (∃ Y π, CategoryTheory.EffectiveEpi π ∧ S.arrows π) ↔
  S ∈ (F.inducedTopology (CategoryTheory.regularTopology D)).sieves X

full_name: CategoryTheory.regularTopology.eq_induced
code: lemma eq_induced : haveI := F.reflects_preregular
    regularTopology C =
      F.inducedTopology (regularTopology _) 
goal: CategoryTheory.regularTopology C = F.inducedTopology (CategoryTheory.regularTopology D)

full_name: CategoryTheory.regularTopology.instIsDenseSubsite
code: instance : haveI := F.reflects_preregular;
    F.IsDenseSubsite (regularTopology C) (regularTopology D) 
goal: CategoryTheory.Functor.IsDenseSubsite (CategoryTheory.regularTopology C) (CategoryTheory.regularTopology D) F

full_name: CategoryTheory.regularTopology.coverPreserving
code: lemma coverPreserving : haveI := F.reflects_preregular
    CoverPreserving (regularTopology _) (regularTopology _) F 
goal: CategoryTheory.CoverPreserving (CategoryTheory.regularTopology C) (CategoryTheory.regularTopology D) F

full_name: CategoryTheory.regularTopology.equivalence
code: /--
The equivalence from regular sheaves on `C` to regular sheaves on `D`, given a fully faithful
functor `F : C ⥤ D` to a preregular category, which preserves and reflects effective
epimorphisms and satisfies `F.EffectivelyEnough`.
-/
noncomputable
def equivalence (A : Type u₃) [Category.{v₃} A] [∀ X, HasLimitsOfShape (StructuredArrow X F.op) A] :
    haveI := F.reflects_preregular
    Sheaf (regularTopology C) A ≌ Sheaf (regularTopology D) A 
goal: CategoryTheory.Sheaf (CategoryTheory.regularTopology C) A ≌ CategoryTheory.Sheaf (CategoryTheory.regularTopology D) A

full_name: CategoryTheory.Presheaf.isSheaf_coherent_iff_regular_and_extensive
code: theorem isSheaf_coherent_iff_regular_and_extensive [Preregular C] [FinitaryPreExtensive C] :
    IsSheaf (coherentTopology C) F ↔
    IsSheaf (extensiveTopology C) F ∧ IsSheaf (regularTopology C) F 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) F ↔
  CategoryTheory.Presheaf.IsSheaf (CategoryTheory.extensiveTopology C) F ∧
    CategoryTheory.Presheaf.IsSheaf (CategoryTheory.regularTopology C) F

full_name: CategoryTheory.Presheaf.isSheaf_iff_preservesFiniteProducts_and_equalizerCondition
code: theorem isSheaf_iff_preservesFiniteProducts_and_equalizerCondition
    [Preregular C] [FinitaryExtensive C]
    [h : ∀ {Y X : C} (f : Y ⟶ X) [EffectiveEpi f], HasPullback f f] :
    IsSheaf (coherentTopology C) F ↔ Nonempty (PreservesFiniteProducts F) ∧
      EqualizerCondition F 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) F ↔
  Nonempty (CategoryTheory.Limits.PreservesFiniteProducts F) ∧ CategoryTheory.regularTopology.EqualizerCondition F

full_name: CategoryTheory.Presheaf.instPreservesFiniteProductsOppositeVal
code: noncomputable instance [Preregular C] [FinitaryExtensive C]
    (F : Sheaf (coherentTopology C) A) : PreservesFiniteProducts F.val 
goal: CategoryTheory.Limits.PreservesFiniteProducts F.val

full_name: CategoryTheory.Presheaf.isSheaf_iff_preservesFiniteProducts_of_projective
code: theorem isSheaf_iff_preservesFiniteProducts_of_projective [Preregular C] [FinitaryExtensive C]
    [∀ (X : C), Projective X] :
    IsSheaf (coherentTopology C) F ↔ Nonempty (PreservesFiniteProducts F) 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) F ↔
  Nonempty (CategoryTheory.Limits.PreservesFiniteProducts F)

full_name: CategoryTheory.Presheaf.isSheaf_iff_extensiveSheaf_of_projective
code: theorem isSheaf_iff_extensiveSheaf_of_projective [Preregular C] [FinitaryExtensive C]
    [∀ (X : C), Projective X] :
    IsSheaf (coherentTopology C) F ↔ IsSheaf (extensiveTopology C) F 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) F ↔
  CategoryTheory.Presheaf.IsSheaf (CategoryTheory.extensiveTopology C) F

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: CategoryTheory.Sheaf (CategoryTheory.coherentTopology C) A ≌ CategoryTheory.Sheaf (CategoryTheory.extensiveTopology C) A

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence_functor_map_val
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: ∀ {X Y : CategoryTheory.Sheaf (CategoryTheory.coherentTopology C) A} (f : X ⟶ Y),
  (CategoryTheory.Presheaf.coherentExtensiveEquivalence.functor.map f).val = f.val

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence_functor_obj_val
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: (CategoryTheory.Presheaf.coherentExtensiveEquivalence.functor.obj F).val = F.val

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence_inverse_map_val
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: ∀ {X Y : CategoryTheory.Sheaf (CategoryTheory.extensiveTopology C) A} (f : X ⟶ Y),
  (CategoryTheory.Presheaf.coherentExtensiveEquivalence.inverse.map f).val = f.val

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence_counitIso
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: CategoryTheory.Presheaf.coherentExtensiveEquivalence.counitIso =
  CategoryTheory.Iso.refl
    ({ obj := fun F => { val := F.val, cond := ⋯ }, map := fun {X Y} f => { val := f.val }, map_id := ⋯,
          map_comp := ⋯ }.comp
      { obj := fun F => { val := F.val, cond := ⋯ }, map := fun {X Y} f => { val := f.val }, map_id := ⋯,
        map_comp := ⋯ })

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence_unitIso
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: CategoryTheory.Presheaf.coherentExtensiveEquivalence.unitIso =
  CategoryTheory.Iso.refl (CategoryTheory.Functor.id (CategoryTheory.Sheaf (CategoryTheory.coherentTopology C) A))

full_name: CategoryTheory.Presheaf.coherentExtensiveEquivalence_inverse_obj_val
code: /--
The categories of coherent sheaves and extensive sheaves on `C` are equivalent if `C` is
preregular, finitary extensive, and every object is projective.
-/
@[simps]
def coherentExtensiveEquivalence [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X] :
    Sheaf (coherentTopology C) A ≌ Sheaf (extensiveTopology C) A 
goal: (CategoryTheory.Presheaf.coherentExtensiveEquivalence.inverse.obj F).val = F.val

full_name: CategoryTheory.Presheaf.isSheaf_coherent_of_hasPullbacks_comp
code: lemma isSheaf_coherent_of_hasPullbacks_comp [Preregular C] [FinitaryExtensive C]
    [h : ∀ {Y X : C} (f : Y ⟶ X) [EffectiveEpi f], HasPullback f f] [PreservesFiniteLimits s]
    (hF : IsSheaf (coherentTopology C) F) : IsSheaf (coherentTopology C) (F ⋙ s) 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) (F.comp s)

full_name: CategoryTheory.Presheaf.isSheaf_coherent_of_hasPullbacks_of_comp
code: lemma isSheaf_coherent_of_hasPullbacks_of_comp [Preregular C] [FinitaryExtensive C]
    [h : ∀ {Y X : C} (f : Y ⟶ X) [EffectiveEpi f], HasPullback f f]
    [ReflectsFiniteLimits s]
    (hF : IsSheaf (coherentTopology C) (F ⋙ s)) : IsSheaf (coherentTopology C) F 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) F

full_name: CategoryTheory.Presheaf.isSheaf_coherent_of_projective_comp
code: lemma isSheaf_coherent_of_projective_comp [Preregular C] [FinitaryExtensive C]
    [∀ (X : C), Projective X] [PreservesFiniteProducts s]
    (hF : IsSheaf (coherentTopology C) F) : IsSheaf (coherentTopology C) (F ⋙ s) 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) (F.comp s)

full_name: CategoryTheory.Presheaf.isSheaf_coherent_of_projective_of_comp
code: lemma isSheaf_coherent_of_projective_of_comp [Preregular C] [FinitaryExtensive C]
    [∀ (X : C), Projective X]
    [ReflectsFiniteProducts s]
    (hF : IsSheaf (coherentTopology C) (F ⋙ s)) : IsSheaf (coherentTopology C) F 
goal: CategoryTheory.Presheaf.IsSheaf (CategoryTheory.coherentTopology C) F

full_name: CategoryTheory.Presheaf.instHasSheafComposeCoherentTopologyOfForallEffectiveEpiHasPullbackOfPreservesFiniteLimits
code: instance [Preregular C] [FinitaryExtensive C]
    [h : ∀ {Y X : C} (f : Y ⟶ X) [EffectiveEpi f], HasPullback f f]
    [PreservesFiniteLimits s] : (coherentTopology C).HasSheafCompose s 
goal: (CategoryTheory.coherentTopology C).HasSheafCompose s

full_name: CategoryTheory.Presheaf.instHasSheafComposeCoherentTopologyOfProjectiveOfPreservesFiniteProducts
code: instance [Preregular C] [FinitaryExtensive C] [∀ (X : C), Projective X]
    [PreservesFiniteProducts s] : (coherentTopology C).HasSheafCompose s 
goal: (CategoryTheory.coherentTopology C).HasSheafCompose s