File: Mathlib/CategoryTheory/Sites/Continuous.lean

full_name: CategoryTheory.PreOneHypercover.map_X
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: (E.map F).X i = F.obj (E.X i)

full_name: CategoryTheory.PreOneHypercover.map_p₂
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: ∀ (x x_1 : E.I₀) (j : E.I₁ x x_1), (E.map F).p₂ j = F.map (E.p₂ j)

full_name: CategoryTheory.PreOneHypercover.map_p₁
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: ∀ (x x_1 : E.I₀) (j : E.I₁ x x_1), (E.map F).p₁ j = F.map (E.p₁ j)

full_name: CategoryTheory.PreOneHypercover.map_I₀
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: (E.map F).I₀ = E.I₀

full_name: CategoryTheory.PreOneHypercover.map_f
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: (E.map F).f i = F.map (E.f i)

full_name: CategoryTheory.PreOneHypercover.map
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: CategoryTheory.PreOneHypercover (F.obj X)

full_name: CategoryTheory.PreOneHypercover.map_Y
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: ∀ (x x_1 : E.I₀) (j : E.I₁ x x_1), (E.map F).Y j = F.obj (E.Y j)

full_name: CategoryTheory.PreOneHypercover.map_I₁
code: /-- The image of a 1-pre-hypercover by a functor. -/
@[simps]
def map : PreOneHypercover (F.obj X) 
goal: (E.map F).I₁ i₁ i₂ = E.I₁ i₁ i₂

full_name: CategoryTheory.PreOneHypercover.isLimitMapMultiforkEquiv
code: /-- If `F : C ⥤ D`, `P : Dᵒᵖ ⥤ A` and `E` is a 1-pre-hypercover of an object of `X`,
then `(E.map F).multifork P` is a limit iff `E.multifork (F.op ⋙ P)` is a limit. -/
def isLimitMapMultiforkEquiv {A : Type u} [Category.{t} A] (P : Dᵒᵖ ⥤ A) :
    IsLimit ((E.map F).multifork P) ≃ IsLimit (E.multifork (F.op ⋙ P)) 
goal: CategoryTheory.Limits.IsLimit ((E.map F).multifork P) ≃ CategoryTheory.Limits.IsLimit (E.multifork (F.op.comp P))

full_name: CategoryTheory.GrothendieckTopology.OneHypercover.IsPreservedBy
code: /-- A 1-hypercover in `C` is preserved by a functor `F : C ⥤ D` if the mapped 1-pre-hypercover
in `D` is a 1-hypercover for the given topology on `D`. -/
class IsPreservedBy (F : C ⥤ D) (K : GrothendieckTopology D) : Prop where
  mem₀ : (E.toPreOneHypercover.map F).sieve₀ ∈ K (F.obj X)
  mem₁ (i₁ i₂ : E.I₀) ⦃W : D⦄ (p₁ : W ⟶ F.obj (E.X i₁)) (p₂ : W ⟶ F.obj (E.X i₂))
    (w : p₁ ≫ F.map (E.f i₁) = p₂ ≫ F.map (E.f i₂)) :
      (E.toPreOneHypercover.map F).sieve₁ p₁ p₂ ∈ K W
goal: Prop

full_name: CategoryTheory.GrothendieckTopology.OneHypercover.IsPreservedBy.mem₁
code: /-- A 1-hypercover in `C` is preserved by a functor `F : C ⥤ D` if the mapped 1-pre-hypercover
in `D` is a 1-hypercover for the given topology on `D`. -/
class IsPreservedBy (F : C ⥤ D) (K : GrothendieckTopology D) : Prop where
  mem₀ : (E.toPreOneHypercover.map F).sieve₀ ∈ K (F.obj X)
  mem₁ (i₁ i₂ : E.I₀) ⦃W : D⦄ (p₁ : W ⟶ F.obj (E.X i₁)) (p₂ : W ⟶ F.obj (E.X i₂))
    (w : p₁ ≫ F.map (E.f i₁) = p₂ ≫ F.map (E.f i₂)) :
      (E.toPreOneHypercover.map F).sieve₁ p₁ p₂ ∈ K W
goal: (E.map F).sieve₁ p₁ p₂ ∈ K.sieves W

full_name: CategoryTheory.GrothendieckTopology.OneHypercover.IsPreservedBy.mem₀
code: /-- A 1-hypercover in `C` is preserved by a functor `F : C ⥤ D` if the mapped 1-pre-hypercover
in `D` is a 1-hypercover for the given topology on `D`. -/
class IsPreservedBy (F : C ⥤ D) (K : GrothendieckTopology D) : Prop where
  mem₀ : (E.toPreOneHypercover.map F).sieve₀ ∈ K (F.obj X)
  mem₁ (i₁ i₂ : E.I₀) ⦃W : D⦄ (p₁ : W ⟶ F.obj (E.X i₁)) (p₂ : W ⟶ F.obj (E.X i₂))
    (w : p₁ ≫ F.map (E.f i₁) = p₂ ≫ F.map (E.f i₂)) :
      (E.toPreOneHypercover.map F).sieve₁ p₁ p₂ ∈ K W
goal: (E.map F).sieve₀ ∈ K.sieves (F.obj X)

full_name: CategoryTheory.GrothendieckTopology.OneHypercover.map
code: /-- Given a 1-hypercover `E : J.OneHypercover X` of an object of `C`, a functor `F : C ⥤ D`
such that `E.IsPreversedBy F K` for a Grothendieck topology `K` on `D`, this is
the image of `E` by `F`, as a 1-hypercover of `F.obj X` for `K`. -/
@[simps toPreOneHypercover]
def map (F : C ⥤ D) (K : GrothendieckTopology D) [E.IsPreservedBy F K] :
    K.OneHypercover (F.obj X) 
goal: K.OneHypercover (F.obj X)

full_name: CategoryTheory.GrothendieckTopology.OneHypercover.map_toPreOneHypercover
code: /-- Given a 1-hypercover `E : J.OneHypercover X` of an object of `C`, a functor `F : C ⥤ D`
such that `E.IsPreversedBy F K` for a Grothendieck topology `K` on `D`, this is
the image of `E` by `F`, as a 1-hypercover of `F.obj X` for `K`. -/
@[simps toPreOneHypercover]
def map (F : C ⥤ D) (K : GrothendieckTopology D) [E.IsPreservedBy F K] :
    K.OneHypercover (F.obj X) 
goal: (E.map F K).toPreOneHypercover = E.map F

full_name: CategoryTheory.GrothendieckTopology.OneHypercover.instIsPreservedById
code: instance : E.IsPreservedBy (𝟭 C) J 
goal: E.IsPreservedBy (CategoryTheory.Functor.id C) J

full_name: CategoryTheory.Functor.PreservesOneHypercovers
code: /-- The condition that a functor `F : C ⥤ D` sends 1-hypercovers for
`J : GrothendieckTopology C` to 1-hypercovers for `K : GrothendieckTopology D`. -/
abbrev PreservesOneHypercovers 
goal: Prop

full_name: CategoryTheory.Functor.IsContinuous
code: /-- A functor `F` is continuous if the precomposition with `F.op` sends sheaves of `Type t`
to sheaves. -/
class IsContinuous : Prop where
  op_comp_isSheafOfTypes (G : SheafOfTypes.{t} K) : Presieve.IsSheaf J (F.op ⋙ G.val)
goal: Prop

full_name: CategoryTheory.Functor.IsContinuous.op_comp_isSheafOfTypes
code: /-- A functor `F` is continuous if the precomposition with `F.op` sends sheaves of `Type t`
to sheaves. -/
class IsContinuous : Prop where
  op_comp_isSheafOfTypes (G : SheafOfTypes.{t} K) : Presieve.IsSheaf J (F.op ⋙ G.val)
goal: CategoryTheory.Presieve.IsSheaf J (F.op.comp G.val)

full_name: CategoryTheory.Functor.op_comp_isSheafOfTypes
code: lemma op_comp_isSheafOfTypes [Functor.IsContinuous.{t} F J K] (G : SheafOfTypes.{t} K) :
    Presieve.IsSheaf J (F.op ⋙ G.val) 
goal: CategoryTheory.Presieve.IsSheaf J (F.op.comp G.val)

full_name: CategoryTheory.Functor.op_comp_isSheaf
code: lemma op_comp_isSheaf [Functor.IsContinuous.{t} F J K] (G : Sheaf K A) :
    Presheaf.IsSheaf J (F.op ⋙ G.val) 
goal: CategoryTheory.Presheaf.IsSheaf J (F.op.comp G.val)

full_name: CategoryTheory.Functor.isContinuous_of_iso
code: lemma isContinuous_of_iso {F₁ F₂ : C ⥤ D} (e : F₁ ≅ F₂)
    (J : GrothendieckTopology C) (K : GrothendieckTopology D)
    [Functor.IsContinuous.{t} F₁ J K] : Functor.IsContinuous.{t} F₂ J K 
goal: F₂.IsContinuous J K

full_name: CategoryTheory.Functor.isContinuous_id
code: instance isContinuous_id : Functor.IsContinuous.{w} (𝟭 C) J J 
goal: (CategoryTheory.Functor.id C).IsContinuous J J

full_name: CategoryTheory.Functor.isContinuous_comp
code: lemma isContinuous_comp (F₁ : C ⥤ D) (F₂ : D ⥤ E) (J : GrothendieckTopology C)
    (K : GrothendieckTopology D) (L : GrothendieckTopology E)
    [Functor.IsContinuous.{t} F₁ J K] [Functor.IsContinuous.{t} F₂ K L] :
    Functor.IsContinuous.{t} (F₁ ⋙ F₂) J L 
goal: (F₁.comp F₂).IsContinuous J L

full_name: CategoryTheory.Functor.isContinuous_comp'
code: lemma isContinuous_comp' {F₁ : C ⥤ D} {F₂ : D ⥤ E} {F₁₂ : C ⥤ E}
    (e : F₁ ⋙ F₂ ≅ F₁₂) (J : GrothendieckTopology C)
    (K : GrothendieckTopology D) (L : GrothendieckTopology E)
    [Functor.IsContinuous.{t} F₁ J K] [Functor.IsContinuous.{t} F₂ K L] :
    Functor.IsContinuous.{t} F₁₂ J L 
goal: F₁₂.IsContinuous J L

full_name: CategoryTheory.Functor.op_comp_isSheaf_of_preservesOneHypercovers
code: lemma op_comp_isSheaf_of_preservesOneHypercovers
    [PreservesOneHypercovers.{w} F J K] [GrothendieckTopology.IsGeneratedByOneHypercovers.{w} J]
    (P : Dᵒᵖ ⥤ A) (hP : Presheaf.IsSheaf K P) :
    Presheaf.IsSheaf J (F.op ⋙ P) 
goal: CategoryTheory.Presheaf.IsSheaf J (F.op.comp P)

full_name: CategoryTheory.Functor.isContinuous_of_preservesOneHypercovers
code: lemma isContinuous_of_preservesOneHypercovers
    [PreservesOneHypercovers.{w} F J K] [GrothendieckTopology.IsGeneratedByOneHypercovers.{w} J] :
    IsContinuous.{t} F J K 
goal: F.IsContinuous J K

full_name: CategoryTheory.Functor.instIsContinuousOfPreservesOneHypercovers
code: instance [PreservesOneHypercovers.{max u₁ v₁} F J K] :
    IsContinuous.{t} F J K 
goal: F.IsContinuous J K

full_name: CategoryTheory.Functor.sheafPushforwardContinuous
code: /-- The induced functor `Sheaf K A ⥤ Sheaf J A` given by `F.op ⋙ _`
if `F` is a continuous functor.
-/
@[simps!]
def sheafPushforwardContinuous : Sheaf K A ⥤ Sheaf J A 
goal: CategoryTheory.Functor (CategoryTheory.Sheaf K A) (CategoryTheory.Sheaf J A)

full_name: CategoryTheory.Functor.sheafPushforwardContinuous_obj_val_obj
code: /-- The induced functor `Sheaf K A ⥤ Sheaf J A` given by `F.op ⋙ _`
if `F` is a continuous functor.
-/
@[simps!]
def sheafPushforwardContinuous : Sheaf K A ⥤ Sheaf J A 
goal: ((F.sheafPushforwardContinuous A J K).obj ℱ).val.obj X = ℱ.val.obj (Opposite.op (F.obj (Opposite.unop X)))

full_name: CategoryTheory.Functor.sheafPushforwardContinuous_obj_val_map
code: /-- The induced functor `Sheaf K A ⥤ Sheaf J A` given by `F.op ⋙ _`
if `F` is a continuous functor.
-/
@[simps!]
def sheafPushforwardContinuous : Sheaf K A ⥤ Sheaf J A 
goal: ∀ {X Y : Cᵒᵖ} (f : X ⟶ Y), ((F.sheafPushforwardContinuous A J K).obj ℱ).val.map f = ℱ.val.map (F.map f.unop).op

full_name: CategoryTheory.Functor.sheafPushforwardContinuous_map_val_app
code: /-- The induced functor `Sheaf K A ⥤ Sheaf J A` given by `F.op ⋙ _`
if `F` is a continuous functor.
-/
@[simps!]
def sheafPushforwardContinuous : Sheaf K A ⥤ Sheaf J A 
goal: ∀ {X Y : CategoryTheory.Sheaf K A} (f : X ⟶ Y) (X_1 : Cᵒᵖ),
  ((F.sheafPushforwardContinuous A J K).map f).val.app X_1 = f.val.app (Opposite.op (F.obj (Opposite.unop X_1)))

full_name: CategoryTheory.Functor.sheafPushforwardContinuousCompSheafToPresheafIso_inv_app_app
code: /-- The functor `F.sheafPushforwardContinuous A J K : Sheaf K A ⥤ Sheaf J A`
is induced by the precomposition with `F.op`. -/
@[simps!]
def sheafPushforwardContinuousCompSheafToPresheafIso :
    F.sheafPushforwardContinuous A J K ⋙ sheafToPresheaf J A ≅
      sheafToPresheaf K A ⋙ (whiskeringLeft _ _ _).obj F.op 
goal: ∀ (X_1 : Cᵒᵖ),
  ((F.sheafPushforwardContinuousCompSheafToPresheafIso A J K).inv.app X).app X_1 =
    CategoryTheory.CategoryStruct.id (X.val.obj (Opposite.op (F.obj (Opposite.unop X_1))))

full_name: CategoryTheory.Functor.sheafPushforwardContinuousCompSheafToPresheafIso
code: /-- The functor `F.sheafPushforwardContinuous A J K : Sheaf K A ⥤ Sheaf J A`
is induced by the precomposition with `F.op`. -/
@[simps!]
def sheafPushforwardContinuousCompSheafToPresheafIso :
    F.sheafPushforwardContinuous A J K ⋙ sheafToPresheaf J A ≅
      sheafToPresheaf K A ⋙ (whiskeringLeft _ _ _).obj F.op 
goal: (F.sheafPushforwardContinuous A J K).comp (CategoryTheory.sheafToPresheaf J A) ≅
  (CategoryTheory.sheafToPresheaf K A).comp ((CategoryTheory.whiskeringLeft Cᵒᵖ Dᵒᵖ A).obj F.op)

full_name: CategoryTheory.Functor.sheafPushforwardContinuousCompSheafToPresheafIso_hom_app_app
code: /-- The functor `F.sheafPushforwardContinuous A J K : Sheaf K A ⥤ Sheaf J A`
is induced by the precomposition with `F.op`. -/
@[simps!]
def sheafPushforwardContinuousCompSheafToPresheafIso :
    F.sheafPushforwardContinuous A J K ⋙ sheafToPresheaf J A ≅
      sheafToPresheaf K A ⋙ (whiskeringLeft _ _ _).obj F.op 
goal: ∀ (X_1 : Cᵒᵖ),
  ((F.sheafPushforwardContinuousCompSheafToPresheafIso A J K).hom.app X).app X_1 =
    CategoryTheory.CategoryStruct.id (X.val.obj (Opposite.op (F.obj (Opposite.unop X_1))))