Basic properties of schemes #
We provide some basic properties of schemes
Main definition #
AlgebraicGeometry.IsIntegral
: A scheme is integral if it is nontrivial and all nontrivial components of the structure sheaf are integral domains.AlgebraicGeometry.IsReduced
: A scheme is reduced if all the components of the structure sheaf are reduced.
instance
AlgebraicGeometry.instT0SpaceαTopologicalSpaceCarrierCommRingCat
(X : AlgebraicGeometry.Scheme)
:
T0Space ↑↑X.toPresheafedSpace
Equations
- ⋯ = ⋯
instance
AlgebraicGeometry.instQuasiSoberαTopologicalSpaceCarrierCommRingCat
(X : AlgebraicGeometry.Scheme)
:
QuasiSober ↑↑X.toPresheafedSpace
Equations
- ⋯ = ⋯
A scheme X
is reduced if all 𝒪ₓ(U)
are reduced.
- component_reduced : ∀ (U : X.Opens), IsReduced ↑(X.presheaf.obj (Opposite.op U))
Instances
theorem
AlgebraicGeometry.IsReduced.component_reduced
{X : AlgebraicGeometry.Scheme}
[self : AlgebraicGeometry.IsReduced X]
(U : X.Opens)
:
IsReduced ↑(X.presheaf.obj (Opposite.op U))
theorem
AlgebraicGeometry.isReduced_of_isReduced_stalk
(X : AlgebraicGeometry.Scheme)
[∀ (x : ↑↑X.toPresheafedSpace), IsReduced ↑(X.presheaf.stalk x)]
:
instance
AlgebraicGeometry.isReduced_stalk_of_isReduced
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsReduced X]
(x : ↑↑X.toPresheafedSpace)
:
IsReduced ↑(X.presheaf.stalk x)
Equations
- ⋯ = ⋯
theorem
AlgebraicGeometry.isReduced_of_isOpenImmersion
{X : AlgebraicGeometry.Scheme}
{Y : AlgebraicGeometry.Scheme}
(f : X ⟶ Y)
[H : AlgebraicGeometry.IsOpenImmersion f]
[AlgebraicGeometry.IsReduced Y]
:
instance
AlgebraicGeometry.instIsReducedSpecOfIsReducedαCommRing
{R : CommRingCat}
[H : IsReduced ↑R]
:
Equations
- ⋯ = ⋯
theorem
AlgebraicGeometry.isReduced_of_isAffine_isReduced
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsAffine X]
[IsReduced ↑(X.presheaf.obj (Opposite.op ⊤))]
:
theorem
AlgebraicGeometry.reduce_to_affine_global
(P : {X : AlgebraicGeometry.Scheme} → X.Opens → Prop)
{X : AlgebraicGeometry.Scheme}
(U : X.Opens)
(h₁ : ∀ (X : AlgebraicGeometry.Scheme) (U : X.Opens), (∀ (x : ↥U), ∃ (V : X.Opens) (_ : ↑x ∈ V) (x : V ⟶ U), P V) → P U)
(h₂ : ∀ (X Y : AlgebraicGeometry.Scheme) (f : X ⟶ Y) [inst : AlgebraicGeometry.IsOpenImmersion f],
∃ (U : X.Opens) (V : Y.Opens), U = ⊤ ∧ V = AlgebraicGeometry.Scheme.Hom.opensRange f ∧ (P U → P V))
(h₃ : ∀ (R : CommRingCat), P ⊤)
:
P U
To show that a statement P
holds for all open subsets of all schemes, it suffices to show that
- In any scheme
X
, ifP
holds for an open cover ofU
, thenP
holds forU
. - For an open immerison
f : X ⟶ Y
, ifP
holds for the entire space ofX
, thenP
holds for the image off
. P
holds for the entire space of an affine scheme.
theorem
AlgebraicGeometry.reduce_to_affine_nbhd
(P : (X : AlgebraicGeometry.Scheme) → ↑↑X.toPresheafedSpace → Prop)
(h₁ : ∀ (R : CommRingCat) (x : ↑↑(AlgebraicGeometry.Spec R).toPresheafedSpace), P (AlgebraicGeometry.Spec R) x)
(h₂ : ∀ {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y) [inst : AlgebraicGeometry.IsOpenImmersion f] (x : ↑↑X.toPresheafedSpace),
P X x → P Y (f.base x))
(X : AlgebraicGeometry.Scheme)
(x : ↑↑X.toPresheafedSpace)
:
P X x
theorem
AlgebraicGeometry.eq_zero_of_basicOpen_eq_bot
{X : AlgebraicGeometry.Scheme}
[hX : AlgebraicGeometry.IsReduced X]
{U : X.Opens}
(s : ↑(X.presheaf.obj (Opposite.op U)))
(hs : X.basicOpen s = ⊥)
:
s = 0
@[simp]
theorem
AlgebraicGeometry.basicOpen_eq_bot_iff
{X : AlgebraicGeometry.Scheme}
[AlgebraicGeometry.IsReduced X]
{U : X.Opens}
(s : ↑(X.presheaf.obj (Opposite.op U)))
:
A scheme X
is integral if its is nonempty,
and 𝒪ₓ(U)
is an integral domain for each U ≠ ∅
.
- nonempty : Nonempty ↑↑X.toPresheafedSpace
- component_integral : ∀ (U : X.Opens) [inst : Nonempty ↑↑(↑U).toPresheafedSpace], IsDomain ↑(X.presheaf.obj (Opposite.op U))
Instances
theorem
AlgebraicGeometry.IsIntegral.nonempty
{X : AlgebraicGeometry.Scheme}
[self : AlgebraicGeometry.IsIntegral X]
:
Nonempty ↑↑X.toPresheafedSpace
theorem
AlgebraicGeometry.IsIntegral.component_integral
{X : AlgebraicGeometry.Scheme}
[self : AlgebraicGeometry.IsIntegral X]
(U : X.Opens)
[Nonempty ↑↑(↑U).toPresheafedSpace]
:
IsDomain ↑(X.presheaf.obj (Opposite.op U))
instance
AlgebraicGeometry.instIsDomainαCommRingObjOppositeOpensTopologicalSpaceCarrierCommRingCatPresheafOpOpensTopOfIsIntegral
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsIntegral X]
:
IsDomain ↑(X.presheaf.obj (Opposite.op ⊤))
Equations
- ⋯ = ⋯
@[instance 900]
instance
AlgebraicGeometry.isReduced_of_isIntegral
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsIntegral X]
:
Equations
- ⋯ = ⋯
instance
AlgebraicGeometry.Scheme.component_nontrivial
(X : AlgebraicGeometry.Scheme)
(U : X.Opens)
[Nonempty ↑↑(↑U).toPresheafedSpace]
:
Nontrivial ↑(X.presheaf.obj (Opposite.op U))
Equations
- ⋯ = ⋯
instance
AlgebraicGeometry.irreducibleSpace_of_isIntegral
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsIntegral X]
:
IrreducibleSpace ↑↑X.toPresheafedSpace
Equations
- ⋯ = ⋯
theorem
AlgebraicGeometry.isIntegral_of_irreducibleSpace_of_isReduced
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsReduced X]
[H : IrreducibleSpace ↑↑X.toPresheafedSpace]
:
theorem
AlgebraicGeometry.isIntegral_iff_irreducibleSpace_and_isReduced
(X : AlgebraicGeometry.Scheme)
:
AlgebraicGeometry.IsIntegral X ↔ IrreducibleSpace ↑↑X.toPresheafedSpace ∧ AlgebraicGeometry.IsReduced X
theorem
AlgebraicGeometry.isIntegral_of_isOpenImmersion
{X : AlgebraicGeometry.Scheme}
{Y : AlgebraicGeometry.Scheme}
(f : X ⟶ Y)
[H : AlgebraicGeometry.IsOpenImmersion f]
[AlgebraicGeometry.IsIntegral Y]
[Nonempty ↑↑X.toPresheafedSpace]
:
instance
AlgebraicGeometry.instIrreducibleSpaceαTopologicalSpaceCarrierCommRingCatSpecOfIsDomainCommRing
{R : CommRingCat}
[IsDomain ↑R]
:
IrreducibleSpace ↑↑(AlgebraicGeometry.Spec R).toPresheafedSpace
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
theorem
AlgebraicGeometry.isIntegral_of_isAffine_of_isDomain
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsAffine X]
[Nonempty ↑↑X.toPresheafedSpace]
[IsDomain ↑(X.presheaf.obj (Opposite.op ⊤))]
:
theorem
AlgebraicGeometry.map_injective_of_isIntegral
(X : AlgebraicGeometry.Scheme)
[AlgebraicGeometry.IsIntegral X]
{U : X.Opens}
{V : X.Opens}
(i : U ⟶ V)
[H : Nonempty ↑↑(↑U).toPresheafedSpace]
:
Function.Injective ⇑(X.presheaf.map i.op)