Rank two over a Weierstrass curve's rational parameter #
Mathlib gives the coordinate ring R[W] a power basis {1, Y} over R[X], and defines the
total fraction ring R(W) as its fraction ring. Its rank over any fraction ring of R[X] acting
through a compatible scalar tower is two, for any nontrivial commutative base ring R.
Over an integral domain these fraction rings are fields. The algebra structure for that pair is
Mathlib's FractionRing.liftAlgebra, which is not a general instance because it collides with
the identity structure on FractionRing R[X] itself. This file exports the specialized action
as an instance. Over a field F, it also computes the degree above the copy of the rational
function field that sits inside F(W) as an intermediate field.
Main results #
WeierstrassCurve.Affine.moduleFinite_coordinateRing: the coordinate ring is a finiteR[X]-module — the companion of Mathlib'sModule.Freeinstance, which Mathlib has only as a lemma, so instance search cannot reach it.WeierstrassCurve.Affine.finrank_coordinateRing: the coordinate ring'sModule.finrankoverR[X]is two, over any nontrivial commutative base ring.WeierstrassCurve.Affine.algebraFractionRingFunctionField: theR(x)-algebra structure onR(W), over any integral domain. Exporting it is enough to bring Mathlib's ownFractionRing.liftAlgebraAPI to bear on this pair — the towerR[X] ⊆ R(x) ⊆ R(W)is then found by instance search, and the induced map isFractionRing.algebraMap_liftAlgebra R[X] W.FunctionField; neither needs restating here.WeierstrassCurve.Affine.finrank_functionField:[R(W) : L] = 2for any commutative fraction ringLofR[X]acting through the polynomial-ring scalar tower — so it servesRatFunc Ras well asFractionRing R[X]whenRis a field.WeierstrassCurve.Affine.finiteDimensional_functionField: the extension is finite-dimensional over any fraction fieldLofR[X], whichfinrank = 2does not give by instance search.WeierstrassCurve.Affine.isFunctionField:W.FunctionFieldis an algebraic function field of one variable overF.WeierstrassCurve.Affine.ratFuncRange: the copy of the rational function fieldF(x)insideF(W), as anIntermediateField. Its API isratFuncRange_eq_map, the defining equation in the⊤.mapform thatIntermediateField.maplemmas consume, andmem_ratFuncRange, the membership characterisation; the body is not exposed, so those two lemmas are the interface.WeierstrassCurve.Affine.finrank_ratFuncRange:[F(W) : F(x)] = 2for that copy. This is the degree above a subfield ofF(W)rather than above an abstractL, which is what any argument comparing two subfields ofF(W)— a tower, or a relative degree — needs; the two are related byAlgHom.finrank_fieldRange, since the copy andRatFunc Fare isomorphic as fields acting onF(W).WeierstrassCurve.Affine.relfinrank_map_ratFuncRange_fieldRange: mapping the pairF(x) ⊆ F(W)along a function-field embedding preserves its relative degree two.WeierstrassCurve.Affine.finrank_map_ratFuncRange: consequently the image ofF(x)sits twice the degree of the image ofF(W)below the target.
The degree is useful in function-field towers, such as K(W) ⊇ K(x) ⊇ K(x^q) when computing
the degree of Frobenius. It follows from Mathlib's IsFractionRing.finrank_eq: L and R(W)
are fraction rings of R[X] and R[W], so their ranks agree, without algebraicity, finiteness or
base-change hypotheses.
References #
Provenance #
Ported from the AINTLIB HasseWeil project (github.com/CBirkbeck/AINTLIB, Apache-2.0,
dev/hasse-weil @ 513e83879e2f), HasseWeil/FrobeniusIsogeny.lean: the
declarations coordinateRing_finite, finrank_coordinateRing_eq_two, its anonymous
Algebra (FractionRing K[X]) K(W) instance, and finrank_functionField_eq_two.
finiteDimensional_functionField is not in the source.
Changes from the source. They are stated there inside a file that also builds the Frobenius
isogeny; here they are separated out, since the degree of R(W) over the rational function field
is a fact about the curve and not about any isogeny. The source states everything over a field;
here both rank computations need only a nontrivial commutative base ring, and the degree is stated
over an arbitrary commutative fraction ring of R[X] rather than over FractionRing R[X] alone.
The canonical fraction-field algebra instance still assumes an integral domain, while finiteness
over a field L needs no separate domain or nontriviality hypothesis on R.
The source's remaining declarations are not ported, each being reachable without them: its
Module K[X] K[W], IsScalarTower K[X] K(x) K(W), Algebra.IsIntegral K[X] K[W] and two
FaithfulSMul instances are all found by instance search (algebraMap_poly_injective is now an
instance in Affine/Point.lean, and Mathlib has FaithfulSMul.algebraMap_injective); and its
isBaseChange_coordToFunc, with the two private localization instances beneath it, is not needed
at all — Mathlib's IsFractionRing.finrank_eq states the degree equality outright, and Mathlib has
deprecated its own base-change-flavoured version in favour of it.
toAlgHom_ratFuncX and relfinrank_map_ratFuncRange_fieldRange are not ported: the first
names the affine coordinate inside the copy of the rational function field, and the second is the
IntermediateField.relfinrank_map_map transport of finrank_ratFuncRange, which the source has
only in the specialised form finrank_over_frobenius_image.
The coordinate ring is a finite R[X]-module.
The coordinate ring has rank two over R[X] for any nontrivial commutative base ring.
The total fraction ring of the coordinate ring has rank two over any fraction ring L of
R[X] acting through a compatible scalar tower. When R is an integral domain, this says that
the function field is a quadratic extension of the rational function field.
The function field is finite-dimensional over any fraction field of R[X]. finrank = 2 does
not give this by instance search, and downstream norm/trace/separability arguments need it.
The action of R(x) on R(W) obtained by extending the polynomial-ring action to
fractions. It supplies the scalar tower R[X] ⊆ R(x) ⊆ R(W).
Equations
The function field of a Weierstrass curve is an algebraic function field of one variable
over the base field, the affine coordinate x being a rational parameter: F(W) / F(x) is
finite, of degree two.
This is what makes the general theory of places, divisors and degrees applicable to a Weierstrass curve.
The image of the rational function field F(x) inside the function field F(W).
Equations
- W.ratFuncRange = (IsScalarTower.toAlgHom F (RatFunc F) W.FunctionField).fieldRange
Instances For
The copy of the rational function field inside F(W) is the image of all of F(x). This is
the defining equation of ratFuncRange, in the form that carries it along IntermediateField.map
lemmas.
The affine coordinate of W, read as the image of the rational function X.
An element of F(W) lies in the copy of the rational function field exactly when it is the
image of a rational function.
[F(W) : F(x)] = 2, for the copy of the rational function field inside F(W): the
L = RatFunc F case of finrank_functionField, transported along the embedding by
AlgHom.finrank_fieldRange.
The image of F(W) has degree two over the image of F(x). Mapping the pair
F(x) ⊆ F(W) along a function-field embedding preserves its relative degree.
The image of F(x) sits twice the degree of the image of F(W) below the target, the
bottom step of the tower having relative degree 2. It converts a degree over the image of F(W)
into one over a rational subfield.