Module

NormalPoint.lean

Nyll.SchemeTheory.PlaneCurves.NormalPoint
18 declarations indexed from sourceView source ↗

The prime divisor centered at a normal rational point

For an irreducible affine plane curve and a rational point at which the local ring is normal, the point local ring is a discrete valuation ring. This file realizes that local ring as its canonical valuation subring in the fraction field of the coordinate ring, proves that its residue field has degree one over the constant field, and characterizes it by its center.

Imports6
Imported by3

Declarations

FieldArithmetic.Chapter06.AffinePlaneCurve.PointLocalRing

The local ring of an affine plane curve at a rational point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
abbrev PointLocalRing
    {f : BivariatePolynomial K} (p : RationalPoint f)
FieldArithmetic.Chapter06.AffinePlaneCurve.IsNormalAt

A point is normal when its local ring is integrally closed.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def IsNormalAt
    {f : BivariatePolynomial K} (p : RationalPoint f) : Prop
FieldArithmetic.Chapter06.AffinePlaneCurve.CoordinateFunctionField

The function field of the irreducible affine coordinate ring.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
abbrev CoordinateFunctionField (f : BivariatePolynomial K)
FieldArithmetic.Chapter06.AffinePlaneCurve.coordinateFunctionFieldMap

The coordinate ring embedded in its function field.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def coordinateFunctionFieldMap
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)] :
    CoordinateRing f →ₐ[K] CoordinateFunctionField f
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointValuationSubring

The canonical valuation subring obtained from the DVR at a normal rational point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def normalPointValuationSubring
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    ValuationSubring (CoordinateFunctionField f)
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointValuationSubring_isDiscreteValuationRing

The normal-point valuation subring is itself a DVR.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPointValuationSubring_isDiscreteValuationRing
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    IsDiscreteValuationRing
      (normalPointValuationSubring hf p hnormal)
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointDiscreteKValuation

The discrete K-valuation of the coordinate function field determined by a normal rational point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def normalPointDiscreteKValuation
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    DiscreteKValuation K (CoordinateFunctionField f) where
  valuationSubring := normalPointValuationSubring hf p hnormal
  isDiscreteValuationRing :=
    normalPointValuationSubring_isDiscreteValuationRing hf p hnormal
  algebraMap_mem := by
    intro x
    let : (pointIdeal p).IsMaximal := pointIdeal_isMaximal p
    let : (pointIdeal p).IsPrime := (pointIdeal_isMaximal p).isPrime
    have hnormal' : IsIntegrallyClosed (PointLocalRing p) := by
      simpa [IsNormalAt] using hnormal
    let : IsDiscreteValuationRing (PointLocalRing p) :=
      pointLocalRing_isDiscreteValuationRing_of_isIntegrallyClosed
        hf p hnormal'
    change
      (IsDiscreteValuationRing.maximalIdeal (PointLocalRing p)).valuation
          (CoordinateFunctionField f)
          (algebraMap K (CoordinateFunctionField f) x) ≤ 1
    have hconstant :
        algebraMap K (CoordinateFunctionField f) x =
          algebraMap (PointLocalRing p) (CoordinateFunctionField f)
            (algebraMap K (PointLocalRing p) x) := by
      rw [IsScalarTower.algebraMap_apply
        K (CoordinateRing f) (CoordinateFunctionField f)]
      rw [IsScalarTower.algebraMap_apply
        K (CoordinateRing f) (PointLocalRing p)]
      rw [IsScalarTower.algebraMap_apply
        (CoordinateRing f) (PointLocalRing p)
          (CoordinateFunctionField f)]
    rw [hconstant]
    exact
      (IsDiscreteValuationRing.maximalIdeal
        (PointLocalRing p)).valuation_le_one
          (K := CoordinateFunctionField f)
          (algebraMap K (PointLocalRing p) x)
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointLocalRingEquiv

The local ring is canonically isomorphic, as a K-algebra, to the valuation subring just constructed.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def normalPointLocalRingEquiv
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    PointLocalRing p ≃ₐ[K]
      (normalPointDiscreteKValuation hf p hnormal).valuationSubring
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointResidueEquiv

The residue field of the canonical valuation ring is canonically the constant field at a rational point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def normalPointResidueEquiv
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    K ≃ₐ[K]
      (normalPointDiscreteKValuation hf p hnormal).ResidueField
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPoint_hasFiniteResidueDegree

The canonical normal-point valuation has finite residue degree.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPoint_hasFiniteResidueDegree
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    HasFiniteResidueDegree K (CoordinateFunctionField f)
      (normalPointDiscreteKValuation hf p hnormal)
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointPrimeDivisor

The genuine function-field prime divisor associated to a normal rational point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
def normalPointPrimeDivisor
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    FunctionFieldPrimeDivisor K (CoordinateFunctionField f) where
  toDiscreteKValuation :=
    normalPointDiscreteKValuation hf p hnormal
  residueFinite :=
    normalPoint_hasFiniteResidueDegree hf p hnormal
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointPrimeDivisor_degree

A rational normal point gives a prime divisor of residue degree one.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPointPrimeDivisor_degree
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    (normalPointPrimeDivisor hf p hnormal).degree = 1
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointPrimeDivisor_finiteAlong

Every element of the affine coordinate ring is finite at the prime divisor defined by the normal point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPointPrimeDivisor_finiteAlong
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    (normalPointPrimeDivisor hf p hnormal).FiniteAlong
      (coordinateFunctionFieldMap (K := K) (f := f))
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointPrimeDivisor_centerAlong

The center of the normal-point prime divisor on the affine coordinate model is exactly the maximal ideal of the given rational point.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPointPrimeDivisor_centerAlong
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    (normalPointPrimeDivisor hf p hnormal).centerAlong
        (coordinateFunctionFieldMap (K := K) (f := f))
        (normalPointPrimeDivisor_finiteAlong hf p hnormal) =
      pointIdeal p
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointValuationSubring_unique

Any prime divisor finite on the coordinate model and centered at the same normal point has the canonical valuation subring.

The proof extends the coordinate-model map to the point localization. This places the canonical valuation ring inside the competing one; dimension one and properness then force equality of valuation subrings.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPointValuationSubring_unique
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p)
    (w : FunctionFieldPrimeDivisor K (CoordinateFunctionField f))
    (hw : w.FiniteAlong
      (coordinateFunctionFieldMap (K := K) (f := f)))
    (hcenter :
      w.centerAlong
          (coordinateFunctionFieldMap (K := K) (f := f)) hw =
        pointIdeal p) :
    (normalPointPrimeDivisor hf p hnormal).valuationSubring =
      w.valuationSubring
FieldArithmetic.Chapter06.AffinePlaneCurve.normalPointPrimeDivisor_unique

The canonical normal-point divisor is the unique function-field prime divisor which is finite on the affine coordinate model and has center pointIdeal p.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem normalPointPrimeDivisor_unique
    {f : BivariatePolynomial K} [IsDomain (CoordinateRing f)]
    (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p)
    (w : FunctionFieldPrimeDivisor K (CoordinateFunctionField f))
    (hw : w.FiniteAlong
      (coordinateFunctionFieldMap (K := K) (f := f)))
    (hcenter :
      w.centerAlong
          (coordinateFunctionFieldMap (K := K) (f := f)) hw =
        pointIdeal p) :
    w = normalPointPrimeDivisor hf p hnormal
FieldArithmetic.Chapter06.AffinePlaneCurve.proposition_6_2_2_a

Fried--Jarden 6.2.2(a), normal rational-point form: there is a unique prime divisor finite on the affine coordinate ring and centered at the point, and its residue degree is one.

The only hypotheses are irreducibility of the curve equation and normality of the point local ring. The coordinate-ring domain, the DVR, and residue finiteness are all constructed above.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem proposition_6_2_2_a
    {f : BivariatePolynomial K} (hf : Irreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    letI : IsDomain (CoordinateRing f) := coordinateRing_isDomain hf
    ∃! w : FunctionFieldPrimeDivisor K (CoordinateFunctionField f),
      ∃ hw : w.FiniteAlong
          (coordinateFunctionFieldMap (K := K) (f := f)),
        w.centerAlong
            (coordinateFunctionFieldMap (K := K) (f := f)) hw =
            pointIdeal p ∧
          w.degree = 1 := by
  let : IsDomain (CoordinateRing f) := coordinateRing_isDomain hf
  let v := normalPointPrimeDivisor hf p hnormal
  let hv : v.FiniteAlong
      (coordinateFunctionFieldMap (K := K) (f := f)) :=
    normalPointPrimeDivisor_finiteAlong hf p hnormal
  refine ⟨v, ?_, ?_⟩
  · exact
      ⟨hv,
        normalPointPrimeDivisor_centerAlong hf p hnormal,
        normalPointPrimeDivisor_degree hf p hnormal⟩
  · intro w hwitness
    obtain ⟨hw, hcenter, _⟩ := hwitness
    exact
      normalPointPrimeDivisor_unique
        hf p hnormal w hw hcenter
FieldArithmetic.Chapter06.AffinePlaneCurve.proposition_6_2_2_a_of_isAbsolutelyIrreducible

The absolutely irreducible form of proposition_6_2_2_a. Absolute irreducibility supplies the irreducibility used in the construction rather than adding a separate coordinate-ring hypothesis.

Source context 7 commands

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

noncomputable section
namespace FieldArithmetic
namespace Chapter06
namespace AffinePlaneCurve
open IsLocalRing
universe u
variable {K : Type u} [Field K]
theorem proposition_6_2_2_a_of_isAbsolutelyIrreducible
    {f : BivariatePolynomial K} (hf : IsAbsolutelyIrreducible f)
    (p : RationalPoint f) (hnormal : IsNormalAt p) :
    let hirreducible : Irreducible f := hf.irreducible
    letI : IsDomain (CoordinateRing f) :=
      coordinateRing_isDomain hirreducible
    ∃! w : FunctionFieldPrimeDivisor K (CoordinateFunctionField f),
      ∃ hw : w.FiniteAlong
          (coordinateFunctionFieldMap (K := K) (f := f)),
        w.centerAlong
            (coordinateFunctionFieldMap (K := K) (f := f)) hw =
            pointIdeal p ∧
          w.degree = 1 := by
  exact proposition_6_2_2_a hf.irreducible p hnormal