File: Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean

full_name: AlgebraicGeometry.AffineTargetMorphismProperty.diagonal
code: /-- The `AffineTargetMorphismProperty` associated to `(targetAffineLocally P).diagonal`.
See `diagonal_targetAffineLocally_eq_targetAffineLocally`.
-/
def AffineTargetMorphismProperty.diagonal (P : AffineTargetMorphismProperty) :
    AffineTargetMorphismProperty 
goal: AlgebraicGeometry.AffineTargetMorphismProperty

full_name: AlgebraicGeometry.AffineTargetMorphismProperty.diagonal_respectsIso
code: instance AffineTargetMorphismProperty.diagonal_respectsIso (P : AffineTargetMorphismProperty)
    [P.toProperty.RespectsIso] : P.diagonal.toProperty.RespectsIso 
goal: P.diagonal.toProperty.RespectsIso

full_name: AlgebraicGeometry.HasAffineProperty.diagonal_of_openCover
code: theorem HasAffineProperty.diagonal_of_openCover (P) {Q} [HasAffineProperty P Q]
    {X Y : Scheme.{u}} (f : X ⟶ Y) (𝒰 : Scheme.OpenCover.{u} Y) [∀ i, IsAffine (𝒰.obj i)]
    (𝒰' : ∀ i, Scheme.OpenCover.{u} (pullback f (𝒰.map i))) [∀ i j, IsAffine ((𝒰' i).obj j)]
    (h𝒰' : ∀ i j k,
      Q (pullback.mapDesc ((𝒰' i).map j) ((𝒰' i).map k) (𝒰.pullbackHom f i))) :
    P.diagonal f 
goal: P.diagonal f

full_name: AlgebraicGeometry.HasAffineProperty.diagonal_of_openCover_diagonal
code: theorem HasAffineProperty.diagonal_of_openCover_diagonal
    (P) {Q} [HasAffineProperty P Q]
    {X Y : Scheme.{u}} (f : X ⟶ Y) (𝒰 : Scheme.OpenCover.{u} Y) [∀ i, IsAffine (𝒰.obj i)]
    (h𝒰 : ∀ i, Q.diagonal (𝒰.pullbackHom f i)) :
    P.diagonal f 
goal: P.diagonal f

full_name: AlgebraicGeometry.HasAffineProperty.diagonal_of_diagonal_of_isPullback
code: theorem HasAffineProperty.diagonal_of_diagonal_of_isPullback
    (P) {Q} [HasAffineProperty P Q]
    {X Y U V : Scheme.{u}} {f : X ⟶ Y} {g : U ⟶ Y}
    [IsAffine U] [IsOpenImmersion g]
    {iV : V ⟶ X} {f' : V ⟶ U} (h : IsPullback iV f' f g) (H : P.diagonal f) :
    Q.diagonal f' 
goal: Q.diagonal f'

full_name: AlgebraicGeometry.HasAffineProperty.diagonal_iff
code: theorem HasAffineProperty.diagonal_iff
    (P) {Q} [HasAffineProperty P Q] {X Y} {f : X ⟶ Y} [IsAffine Y] :
    Q.diagonal f ↔ P.diagonal f 
goal: Q.diagonal f ↔ P.diagonal f

full_name: AlgebraicGeometry.HasAffineProperty.diagonal_affineProperty_isLocal
code: instance HasAffineProperty.diagonal_affineProperty_isLocal
    {Q : AffineTargetMorphismProperty} [Q.IsLocal] :
    Q.diagonal.IsLocal 
goal: Q.diagonal.IsLocal

full_name: AlgebraicGeometry.instHasAffinePropertyDiagonalSchemeDiagonal
code: instance (P) {Q} [HasAffineProperty P Q] : HasAffineProperty P.diagonal Q.diagonal 
goal: AlgebraicGeometry.HasAffineProperty P.diagonal Q.diagonal

full_name: AlgebraicGeometry.instIsLocalAtTargetDiagonalScheme
code: instance (P) [IsLocalAtTarget P] : IsLocalAtTarget P.diagonal 
goal: AlgebraicGeometry.IsLocalAtTarget P.diagonal

full_name: AlgebraicGeometry.universally_isLocalAtTarget
code: theorem universally_isLocalAtTarget (P : MorphismProperty Scheme)
    (hP₂ : ∀ {X Y : Scheme.{u}} (f : X ⟶ Y) {ι : Type u} (U : ι → Y.Opens)
      (_ : iSup U = ⊤), (∀ i, P (f ∣_ U i)) → P f) : IsLocalAtTarget P.universally 
goal: AlgebraicGeometry.IsLocalAtTarget P.universally

full_name: AlgebraicGeometry.topologically
code: /-- `topologically P` holds for a morphism if the underlying topological map satisfies `P`. -/
def topologically
    (P : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (_ : α → β), Prop) :
    MorphismProperty Scheme.{u} 
goal: CategoryTheory.MorphismProperty AlgebraicGeometry.Scheme

full_name: AlgebraicGeometry.topologically_isStableUnderComposition
code: /-- If a property of maps of topological spaces is stable under composition, the induced
morphism property of schemes is stable under composition. -/
lemma topologically_isStableUnderComposition
    (hP : ∀ {α β γ : Type u} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ]
      (f : α → β) (g : β → γ) (_ : P f) (_ : P g), P (g ∘ f)) :
    (topologically P).IsStableUnderComposition 
goal: (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => P).IsStableUnderComposition

full_name: AlgebraicGeometry.topologically_iso_le
code: /-- If a property of maps of topological spaces is satisfied by all homeomorphisms,
every isomorphism of schemes satisfies the induced property. -/
lemma topologically_iso_le
    (hP : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α ≃ₜ β), P f) :
    MorphismProperty.isomorphisms Scheme ≤ (topologically P) 
goal: CategoryTheory.MorphismProperty.isomorphisms AlgebraicGeometry.Scheme ≤
  AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => P

full_name: AlgebraicGeometry.topologically_respectsIso
code: /-- If a property of maps of topological spaces is satisfied by homeomorphisms and is stable
under composition, the induced property on schemes respects isomorphisms. -/
lemma topologically_respectsIso
    (hP₁ : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α ≃ₜ β), P f)
    (hP₂ : ∀ {α β γ : Type u} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ]
      (f : α → β) (g : β → γ) (_ : P f) (_ : P g), P (g ∘ f)) :
      (topologically P).RespectsIso 
goal: (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => P).RespectsIso

full_name: AlgebraicGeometry.topologically_isLocalAtTarget
code: /-- To check that a topologically defined morphism property is local at the target,
we may check the corresponding properties on topological spaces. -/
lemma topologically_isLocalAtTarget
    [(topologically P).RespectsIso]
    (hP₂ : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α → β) (s : Set β),
      P f → P (s.restrictPreimage f))
    (hP₃ : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α → β) {ι : Type u}
      (U : ι → TopologicalSpace.Opens β) (_ : iSup U = ⊤) (_ : Continuous f),
      (∀ i, P ((U i).carrier.restrictPreimage f)) → P f) :
    IsLocalAtTarget (topologically P) 
goal: AlgebraicGeometry.IsLocalAtTarget
  (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => P)

full_name: AlgebraicGeometry.stalkwise
code: /-- `stalkwise P` holds for a morphism if all stalks satisfy `P`. -/
def stalkwise (P : ∀ {R S : Type u} [CommRing R] [CommRing S], (R →+* S) → Prop) :
    MorphismProperty Scheme.{u} 
goal: CategoryTheory.MorphismProperty AlgebraicGeometry.Scheme

full_name: AlgebraicGeometry.stalkwise_respectsIso
code: /-- If `P` respects isos, then `stalkwise P` respects isos. -/
lemma stalkwise_respectsIso (hP : RingHom.RespectsIso P) :
    (stalkwise P).RespectsIso 
goal: (AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] => P).RespectsIso

full_name: AlgebraicGeometry.stalkwiseIsLocalAtTarget_of_respectsIso
code: /-- If `P` respects isos, then `stalkwise P` is local at the target. -/
lemma stalkwiseIsLocalAtTarget_of_respectsIso (hP : RingHom.RespectsIso P) :
    IsLocalAtTarget (stalkwise P) 
goal: AlgebraicGeometry.IsLocalAtTarget (AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] => P)

full_name: AlgebraicGeometry.AffineTargetMorphismProperty.stableUnderBaseChange_of_stableUnderBaseChangeOnAffine_of_isLocalAtTarget
code: /-- If `P` is local at the target, to show that `P` is stable under base change, it suffices to
check this for base change along a morphism of affine schemes. -/
lemma stableUnderBaseChange_of_stableUnderBaseChangeOnAffine_of_isLocalAtTarget
    (P : MorphismProperty Scheme) [IsLocalAtTarget P]
    (hP₂ : (of P).StableUnderBaseChange) :
    P.StableUnderBaseChange 
goal: P.StableUnderBaseChange