Module

RationalSection.lean

Nyll.ShimizuYamaguchi26BranchedCoverings.Geometry.RationalSection
9 declarations indexed from sourceView source ↗

Rational points and their integral section closures

The primitive numerator and denominator of an actual rational projective point supply Bezout coefficients. These construct a section of the integral projective line, whose image is the homogeneous linear zero locus already used for special fibre intersections. The image of the original point over the rational numbers is exactly the generic point of this section. Consequently its Zariski closure is that same zero locus, as in the definition of the divisors in Lemma 2.3 of Shimizu and Yamaguchi, On branched coverings of the projective line over the integers.

Imports27
Imported by7

Declarations

ShimizuYamaguchi26BranchedCoverings.rationalSection

The actual integral section obtained from a rational projective point's primitive coordinates and their Bezout identity.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
def rationalSection (a : Projectivization ℚ (ℚ × ℚ)) :
    Spec (CommRingCat.of ℤ) ⟶ ProjectiveLine ℤ
ShimizuYamaguchi26BranchedCoverings.rationalSection_comp_π

The constructed morphism is a section of the integral projective line.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
theorem rationalSection_comp_π (a : Projectivization ℚ (ℚ × ℚ)) :
    rationalSection a ≫ ProjSpace.π ℤ 1 = 𝟙 (Spec (CommRingCat.of ℤ))
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
instance (a : Projectivization ℚ (ℚ × ℚ)) : IsClosedImmersion (rationalSection a)
ShimizuYamaguchi26BranchedCoverings.range_rationalSection

The actual section image equals the homogeneous support used in the special-fibre intersection calculations.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
theorem range_rationalSection (a : Projectivization ℚ (ℚ × ℚ)) :
    Set.range (rationalSection a) = rationalSectionSupport a
ShimizuYamaguchi26BranchedCoverings.rationalProjectiveSchemePoint

The rational projective-scheme point represented by the primitive coordinates of the given point of Projectivization ℚ (ℚ × ℚ).

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
def rationalProjectiveSchemePoint (a : Projectivization ℚ (ℚ × ℚ)) : ProjectiveLine ℚ
ShimizuYamaguchi26BranchedCoverings.rationalSectionGenericPoint

The original rational point, viewed as a point of the integral projective line.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
def rationalSectionGenericPoint (a : Projectivization ℚ (ℚ × ℚ)) : ProjectiveLine ℤ
ShimizuYamaguchi26BranchedCoverings.rationalSectionGenericPoint_eq

The point over the rational numbers is the image of the generic point of Spec ℤ under the constructed integral section.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
theorem rationalSectionGenericPoint_eq (a : Projectivization ℚ (ℚ × ℚ)) :
    rationalSectionGenericPoint a = rationalSection a (⊥ : PrimeSpectrum ℤ)
ShimizuYamaguchi26BranchedCoverings.closure_rationalSectionGenericPoint

The homogeneous support is precisely the Zariski closure of the original rational point in the integral projective line.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
theorem closure_rationalSectionGenericPoint (a : Projectivization ℚ (ℚ × ℚ)) :
    closure ({rationalSectionGenericPoint a} : Set (ProjectiveLine ℤ)) =
      rationalSectionSupport a
ShimizuYamaguchi26BranchedCoverings.rationalSectionFamily_supportComplement

The support complement of the actual product of section kernel ideals is the finite intersection of the nonvanishing opens of their equations.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open CategoryTheory AlgebraicGeometry
open scoped BigOperators
namespace ShimizuYamaguchi26BranchedCoverings
attribute [local instance] MvPolynomial.gradedAlgebra
theorem rationalSectionFamily_supportComplement
    (A : Finset (Projectivization ℚ (ℚ × ℚ))) :
    (∏ a ∈ A, (rationalSection a).ker).supportComplement =
      A.inf (fun a =>
        Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin 2) ℤ)
          (linearSectionEquation (rationalPointNumerator a)
            (rationalPointDenominator a))) := by
  have hsingle (a : Projectivization ℚ (ℚ × ℚ)) :
      (rationalSection a).ker.supportComplement =
        Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin 2) ℤ)
          (linearSectionEquation (rationalPointNumerator a)
            (rationalPointDenominator a)) := by
    apply TopologicalSpace.Opens.ext
    change ((rationalSection a).ker.support : Set (ProjectiveLine ℤ))ᶜ = _
    have hker : ((rationalSection a).ker.support : Set (ProjectiveLine ℤ)) =
        closure (Set.range (rationalSection a)) :=
      Scheme.Hom.support_ker (rationalSection a)
    have hclosed : closure (Set.range (rationalSection a)) =
        Set.range (rationalSection a) :=
      (rationalSection a).isClosedEmbedding.isClosed_range.closure_eq
    have hopen :
        (Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin 2) ℤ)
          (linearSectionEquation (rationalPointNumerator a)
            (rationalPointDenominator a)) : Set (ProjectiveLine ℤ)) =
          (rationalSectionSupport a)ᶜ :=
      ProjectiveSpectrum.basicOpen_eq_zeroLocus_compl
        (MvPolynomial.homogeneousSubmodule (Fin 2) ℤ)
        (linearSectionEquation (rationalPointNumerator a)
          (rationalPointDenominator a))
    exact (congrArg (fun Z : Set (ProjectiveLine ℤ) => Zᶜ)
      (hker.trans (hclosed.trans (range_rationalSection a)))).trans hopen.symm
  have hfinite : (∏ a ∈ A, (rationalSection a).ker).supportComplement =
      A.inf (fun a => (rationalSection a).ker.supportComplement) := by
    change (∏ a ∈ A, (rationalSection a).ker).support.compl =
      A.inf (fun a => (rationalSection a).ker.support.compl)
    rw [Scheme.IdealSheafData.support_finset_prod]
    exact map_finset_sup
      (TopologicalSpace.Closeds.complOrderIso (ProjectiveLine ℤ)) A
      (fun a => (rationalSection a).ker.support)
  exact hfinite.trans (Finset.inf_congr rfl fun a _ => hsingle a)