Projective space and projective -schemes
DefinitionWeilConjectures_projectiveSpaceFor a field and , projective -space is , the polynomial ring being graded by total degree. Its structure morphism is the canonical map followed by the map induced by .
A scheme with a morphism is projective over if for some there is a closed immersion with , where is the structure morphism.
This supplies the word "projective" in "non-singular projective variety" in the statement of the Weil conjectures, and the projective line and projective spaces of the source's examples.
Formalization Note Mathlib currently has Proj of a graded ring but no projective space or projective morphisms; this file defines projectiveSpace k N, projectiveSpace.toSpec k N and IsProjectiveOver k f, using MvPolynomial.gradedAlgebra as a local instance. Schemes live in universe 0.
import Mathlib
/-!
Projective space `ℙ^N_k` over a field `k`, its structure morphism to `Spec k`,
and the notion of a `k`-scheme being projective (admitting a closed immersion into some
`ℙ^N_k` over `k`).
-/
namespace WeilConjectures
open AlgebraicGeometry CategoryTheory
attribute [local instance] MvPolynomial.gradedAlgebra
variable (k : Type) [Field k]
/-- Projective `N`-space over `k`: `ℙ^N_k = Proj k[x₀, …, x_N]`, where the polynomial ring
is graded by total degree. -/
noncomputable abbrev projectiveSpace (N : ℕ) : Scheme :=
Proj (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) k)
/-- The structure morphism `ℙ^N_k ⟶ Spec k`: the canonical map
`Proj A ⟶ Spec A₀` followed by `Spec A₀ ⟶ Spec k` induced by `k → A₀`. -/
noncomputable def projectiveSpace.toSpec (N : ℕ) : projectiveSpace k N ⟶ Spec (.of k) :=
Proj.toSpecZero (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) k) ≫
Spec.map (CommRingCat.ofHom
(algebraMap k (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) k 0)))
/-- A `k`-scheme `f : X ⟶ Spec k` is projective if there is a closed immersion
`X ⟶ ℙ^N_k` over `Spec k` for some `N`. -/
def IsProjectiveOver {X : Scheme} (f : X ⟶ Spec (.of k)) : Prop :=
∃ (N : ℕ) (i : X ⟶ projectiveSpace k N),
IsClosedImmersion i ∧ i ≫ projectiveSpace.toSpec k N = f
end WeilConjectures
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.