File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

full_name: AlgebraicGeometry.QuasiCompact.isCompact_preimage
code: /--
A morphism is "quasi-compact" if the underlying map of topological spaces is, i.e. if the preimages
of quasi-compact open sets are quasi-compact.
-/
@[mk_iff]
class QuasiCompact (f : X ⟶ Y) : Prop where
  /-- Preimage of compact open set under a quasi-compact morphism between schemes is compact. -/
  isCompact_preimage : ∀ U : Set Y, IsOpen U → IsCompact U → IsCompact (f.1.base ⁻¹' U)
goal: IsOpen U → IsCompact U → IsCompact (⇑f.val.base ⁻¹' U)

full_name: AlgebraicGeometry.QuasiCompact
code: /--
A morphism is "quasi-compact" if the underlying map of topological spaces is, i.e. if the preimages
of quasi-compact open sets are quasi-compact.
-/
@[mk_iff]
class QuasiCompact (f : X ⟶ Y) : Prop where
  /-- Preimage of compact open set under a quasi-compact morphism between schemes is compact. -/
  isCompact_preimage : ∀ U : Set Y, IsOpen U → IsCompact U → IsCompact (f.1.base ⁻¹' U)
goal: Prop

full_name: AlgebraicGeometry.quasiCompact_iff
code: /--
A morphism is "quasi-compact" if the underlying map of topological spaces is, i.e. if the preimages
of quasi-compact open sets are quasi-compact.
-/
@[mk_iff]
class QuasiCompact (f : X ⟶ Y) : Prop where
  /-- Preimage of compact open set under a quasi-compact morphism between schemes is compact. -/
  isCompact_preimage : ∀ U : Set Y, IsOpen U → IsCompact U → IsCompact (f.1.base ⁻¹' U)
goal: AlgebraicGeometry.QuasiCompact f ↔
  ∀ (U : Set ↑↑Y.toPresheafedSpace), IsOpen U → IsCompact U → IsCompact (⇑f.val.base ⁻¹' U)

full_name: AlgebraicGeometry.quasiCompact_iff_spectral
code: theorem quasiCompact_iff_spectral : QuasiCompact f ↔ IsSpectralMap f.1.base 
goal: AlgebraicGeometry.QuasiCompact f ↔ IsSpectralMap ⇑f.val.base

full_name: AlgebraicGeometry.quasiCompact_of_isIso
code: instance (priority := 900) quasiCompact_of_isIso {X Y : Scheme} (f : X ⟶ Y) [IsIso f] :
    QuasiCompact f 
goal: AlgebraicGeometry.QuasiCompact f

full_name: AlgebraicGeometry.quasiCompact_comp
code: instance quasiCompact_comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [QuasiCompact f]
    [QuasiCompact g] : QuasiCompact (f ≫ g) 
goal: AlgebraicGeometry.QuasiCompact (f ≫ g)

full_name: AlgebraicGeometry.isCompactOpen_iff_eq_finset_affine_union
code: theorem isCompactOpen_iff_eq_finset_affine_union {X : Scheme} (U : Set X) :
    IsCompact U ∧ IsOpen U ↔ ∃ s : Set X.affineOpens, s.Finite ∧ U = ⋃ i ∈ s, i 
goal: IsCompact U ∧ IsOpen U ↔ ∃ s, s.Finite ∧ U = ⋃ i ∈ s, ↑↑i

full_name: AlgebraicGeometry.isCompactOpen_iff_eq_basicOpen_union
code: theorem isCompactOpen_iff_eq_basicOpen_union {X : Scheme} [IsAffine X] (U : Set X) :
    IsCompact U ∧ IsOpen U ↔
      ∃ s : Set Γ(X, ⊤), s.Finite ∧ U = ⋃ i ∈ s, X.basicOpen i 
goal: IsCompact U ∧ IsOpen U ↔ ∃ s, s.Finite ∧ U = ⋃ i ∈ s, ↑(X.basicOpen i)

full_name: AlgebraicGeometry.quasiCompact_iff_forall_affine
code: theorem quasiCompact_iff_forall_affine :
    QuasiCompact f ↔
      ∀ U : Y.Opens, IsAffineOpen U → IsCompact (f ⁻¹ᵁ U : Set X) 
goal: AlgebraicGeometry.QuasiCompact f ↔ ∀ (U : Y.Opens), AlgebraicGeometry.IsAffineOpen U → IsCompact ↑(f ⁻¹ᵁ U)

full_name: AlgebraicGeometry.isCompact_basicOpen
code: theorem isCompact_basicOpen (X : Scheme) {U : X.Opens} (hU : IsCompact (U : Set X))
    (f : Γ(X, U)) : IsCompact (X.basicOpen f : Set X) 
goal: IsCompact ↑(X.basicOpen f)

full_name: AlgebraicGeometry.instHasAffinePropertyQuasiCompactCompactSpaceαTopologicalSpaceCarrierCommRingCat
code: @[reducible]
instance : HasAffineProperty @QuasiCompact (fun X _ _ _ ↦ CompactSpace X) 
goal: AlgebraicGeometry.HasAffineProperty @AlgebraicGeometry.QuasiCompact fun X x x_1 x => CompactSpace ↑↑X.toPresheafedSpace

full_name: AlgebraicGeometry.quasiCompact_over_affine_iff
code: theorem quasiCompact_over_affine_iff {X Y : Scheme} (f : X ⟶ Y) [IsAffine Y] :
    QuasiCompact f ↔ CompactSpace X 
goal: AlgebraicGeometry.QuasiCompact f ↔ CompactSpace ↑↑X.toPresheafedSpace

full_name: AlgebraicGeometry.compactSpace_iff_quasiCompact
code: theorem compactSpace_iff_quasiCompact (X : Scheme) :
    CompactSpace X ↔ QuasiCompact (terminal.from X) 
goal: CompactSpace ↑↑X.toPresheafedSpace ↔ AlgebraicGeometry.QuasiCompact (CategoryTheory.Limits.terminal.from X)

full_name: AlgebraicGeometry.quasiCompact_isStableUnderComposition
code: instance quasiCompact_isStableUnderComposition :
    MorphismProperty.IsStableUnderComposition @QuasiCompact 
goal: CategoryTheory.MorphismProperty.IsStableUnderComposition @AlgebraicGeometry.QuasiCompact

full_name: AlgebraicGeometry.quasiCompact_stableUnderBaseChange
code: theorem quasiCompact_stableUnderBaseChange :
    MorphismProperty.StableUnderBaseChange @QuasiCompact 
goal: CategoryTheory.MorphismProperty.StableUnderBaseChange @AlgebraicGeometry.QuasiCompact

full_name: AlgebraicGeometry.instQuasiCompactFstScheme
code: instance (f : X ⟶ Z) (g : Y ⟶ Z) [QuasiCompact g] : QuasiCompact (pullback.fst f g) 
goal: AlgebraicGeometry.QuasiCompact (CategoryTheory.Limits.pullback.fst f g)

full_name: AlgebraicGeometry.instQuasiCompactSndScheme
code: instance (f : X ⟶ Z) (g : Y ⟶ Z) [QuasiCompact f] : QuasiCompact (pullback.snd f g) 
goal: AlgebraicGeometry.QuasiCompact (CategoryTheory.Limits.pullback.snd f g)

full_name: AlgebraicGeometry.compact_open_induction_on
code: @[elab_as_elim]
theorem compact_open_induction_on {P : X.Opens → Prop} (S : X.Opens)
    (hS : IsCompact S.1) (h₁ : P ⊥)
    (h₂ : ∀ (S : X.Opens) (_ : IsCompact S.1) (U : X.affineOpens), P S → P (S ⊔ U)) :
    P S 
goal: P S

full_name: AlgebraicGeometry.exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isAffineOpen
code: theorem exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isAffineOpen (X : Scheme)
    {U : X.Opens} (hU : IsAffineOpen U) (x f : Γ(X, U))
    (H : x |_ X.basicOpen f = 0) : ∃ n : ℕ, f ^ n * x = 0 
goal: ∃ n, f ^ n * x = 0

full_name: AlgebraicGeometry.exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isCompact
code: /-- If `x : Γ(X, U)` is zero on `D(f)` for some `f : Γ(X, U)`, and `U` is quasi-compact, then
`f ^ n * x = 0` for some `n`. -/
theorem exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isCompact (X : Scheme.{u})
    {U : X.Opens} (hU : IsCompact U.1) (x f : Γ(X, U))
    (H : x |_ X.basicOpen f = 0) : ∃ n : ℕ, f ^ n * x = 0 
goal: ∃ n, f ^ n * x = 0

full_name: AlgebraicGeometry.Scheme.isNilpotent_iff_basicOpen_eq_bot_of_isCompact
code: /-- A section over a compact open of a scheme is nilpotent if and only if its associated
basic open is empty. -/
lemma Scheme.isNilpotent_iff_basicOpen_eq_bot_of_isCompact {X : Scheme.{u}}
    {U : X.Opens} (hU : IsCompact (U : Set X)) (f : Γ(X, U)) :
    IsNilpotent f ↔ X.basicOpen f = ⊥ 
goal: IsNilpotent f ↔ X.basicOpen f = ⊥

full_name: AlgebraicGeometry.Scheme.zeroLocus_eq_top_iff_subset_nilradical_of_isCompact
code: /-- The zero locus of a set of sections over a compact open of a scheme is `X` if and only if
`s` is contained in the nilradical of `Γ(X, U)`. -/
lemma Scheme.zeroLocus_eq_top_iff_subset_nilradical_of_isCompact {X : Scheme.{u}} {U : X.Opens}
    (hU : IsCompact (U : Set X)) (s : Set Γ(X, U)) :
    X.zeroLocus s = ⊤ ↔ s ⊆ nilradical Γ(X, U) 
goal: X.zeroLocus s = ⊤ ↔ s ⊆ ↑(nilradical ↑Γ(X, U))