Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.Affine.Point.Place

Solutions of a Weierstrass equation are its degree-one affine places #

For an affine Weierstrass curve W over a field whose coordinate ring is a Dedekind domain, the ideal ⟨X - x, Y - y⟩ = XYIdeal W x (C y) of a solution (x, y) of W.Equation is maximal and nonzero. It is therefore a point of IsDedekindDomain.HeightOneSpectrum W.CoordinateRing, which is Mathlib's type of nonzero primes and carries the adic valuation on the function field.

This file builds that place and identifies which places arise: exactly those of degree one, the degree of a place being the rank of its residue field over the base field. A point has degree one because the quotient by its ideal is the base field, by Mathlib's quotientXYIdealEquiv; the converse ideal-level classification is in XYIdealMaximal.lean. The Dedekind hypothesis enters only in the packaging, where the places are named.

The degree hypothesis is part of the statement, not a convenience: a place of degree d > 1 has a residue field of degree d over F and is the place of no rational point at all. It is only over an algebraically closed base that every place has degree one, so that points correspond to all nonzero primes.

When W is elliptic, Mathlib's Affine.equation_iff_nonsingular identifies the solutions of W.Equation with the affine points in W.toAffine.Point, namely the points other than 0.

Main definitions #

Main results #

(pointPlace h).valuation W.FunctionField is then the associated multiplicative adic valuation on the function field, taking values in ℤᵐ⁰ and normalised so that a uniformiser has value WithZero.exp (-1); the order of vanishing is its negative logarithm. Mathlib's Valuation API — multiplicativity, the ultrametric inequality, vanishing exactly at 0, and the existence of a uniformiser — comes with it.

Roadmap #

TauCetiRoadmap/EllipticCurves/README.md, Layer 0 (the function field, places, and divisors), whose §Places asks for the affine places as the maximal ideals of the coordinate ring together with an API of ord_v and uniformisers, and for the point–place dictionary: "for elliptic W, W.toAffine.Point is in bijection with the degree-1 places: O ↦ infinityPlace, and an affine nonsingular (x₀, y₀) ↦ the maximal ideal (X − x₀, Y − y₀)". This is the affine half of that dictionary at the level of equation solutions; for elliptic W, equation_iff_nonsingular identifies its domain with the nonzero affine points. The downstream file Affine/FunctionField/PointPlace.lean packages the valuation at infinity and these affine primes as one type of normalized places, and pointEquivDegreeOnePlace extends this affine equivalence to the whole point group. The layer seeds no declaration this competes with, and records that the design is coordinated with D. Angdinata's in-flight upstream CoordinateRing work.

Provenance #

The degree-one result corresponds to AINTLIB's HasseWeil/Curves/ResidueFieldAtSmoothPoint.lean (SmoothPlaneCurve.quotientAlgEquivBase, SmoothPlaneCurve.residueFieldsAlgEquiv, CurveMap.CoordHom.inertiaDeg_eq_one_of_isAlgClosed). There it is reached through the SmoothPlaneCurve/SmoothPoint wrappers with the residue field built by hand, and the residue degree additionally assumes an algebraically closed base; here the wrappers are dropped, the hypothesis is the curve equation, no closure is needed, and the content is Mathlib's quotientXYIdealEquiv rather than a fresh construction.

The place itself is not a port. AINTLIB's HasseWeil/Curves/Valuation.lean builds an ord_P for its own SmoothPlaneCurve wrapper with about twenty lemmas — multiplicativity, the ultrametric bound, inverses, powers, uniformisers. None of that is reproduced: once the point is presented as a HeightOneSpectrum, those are Mathlib's Valuation.map_mul, Valuation.map_add, Valuation.zero_iff, Valuation.map_inv, Valuation.map_add_of_distinct_val and IsDedekindDomain.HeightOneSpectrum.valuation_exists_uniformizer.

The packaged equivalence corresponds to AINTLIB's smoothPointEquivHeightOneSpectrum in projects/HasseWeil/HasseWeil/Foundation/Curves/Valuation/SmoothPointPrime.lean (github.com/CBirkbeck/AINTLIB @ 1c1c74664e40, Apache-2.0; Authors: Chris Birkbeck). That version uses SmoothPlaneCurve and SmoothPoint wrappers, assumes a maximal-ideal hypothesis and [IsAlgClosed F], and reaches all height-one primes. Here the domain is the equation-solution subtype and the codomain is the degree-one places over an arbitrary field. The preceding "not a port" statement concerns only the ord_P valuation API.

The place of a solution of a Weierstrass equation: the ideal ⟨X - x, Y - y⟩ as a nonzero prime of the coordinate ring, for a solution (x, y) of W.Equation. The Dedekind hypothesis is an instance argument, discharged by WeierstrassCurve.Affine.isDedekindDomain_coordinateRing_of_isIntegrallyClosed once the coordinate ring is known integrally closed — which for an elliptic curve is WeierstrassCurve.Affine.isIntegrallyClosed_coordinateRing.

Equations
Instances For
    @[simp]

    The ideal underlying the place of a point is ⟨X - x, Y - y⟩.

    @[simp]
    theorem WeierstrassCurve.Affine.CoordinateRing.pointPlace_eq_iff {F : Type u_1} [Field F] {W : Affine F} [IsDedekindDomain W.CoordinateRing] {x₁ x₂ y₁ y₂ : F} (h₁ : W.Equation x₁ y₁) (h₂ : W.Equation x₂ y₂) :
    pointPlace h₁ = pointPlace h₂ ↔ x₁ = x₂ ∧ y₁ = y₂

    pointPlace is injective: two points of the curve have the same place exactly when they have the same coordinates.

    A height-one prime containing both generators of the ideal of a point is that point's place: the ideal of a point is maximal, so the containment cannot be strict.

    A quotient of coordinate-ring classes has no pole at a point where its denominator does not vanish.

    A quotient of coordinate-ring classes vanishes at a point where its numerator does and its denominator does not.

    A quotient of coordinate-ring classes has a pole at a point where its denominator vanishes and its numerator does not.

    @[simp]

    The place of a point has degree one. The degree of a place is the rank of its residue field over the base, and here that rank is one — which is the sense in which the point–place dictionary lands in the degree-one places.

    Every degree-one place is the place of a point, the converse of pointPlace.finrank_residueField_eq_one.

    The affine point–place dictionary: the solutions of W.Equation correspond to the degree-one places of its coordinate ring, a solution going to the prime ⟨X - x, Y - y⟩. For elliptic W, these solutions are the nonzero affine points by equation_iff_nonsingular. Injectivity is pointPlace_eq_iff and surjectivity is exists_pointPlace_eq.

    Equations
    Instances For
      @[simp]

      The dictionary sends a point to its place.

      @[simp]

      Reading the dictionary backwards and then taking the place recovers the original place.