Definitions/Def_WeierstrassCurve_GenusOnePlaceGateCentred.lean
Centring condition for the genus-one place–point gate
Let W be an affine Weierstrass curve over a field F, equipped with the gate class GenusOnePlaceGate W, which carries a bijection pointEquivPlace between the point group W.\mathrm{Point} and the places of W's function field over F (all of residue degree one), and write placeOfPoint for this bijection. Here a place, in the project's sense, is a valuation subring of the function field that contains the image of F, is not the whole field, and is a principal ideal ring, hence a discrete valuation ring.
The module defines the Prop-valued mixin class GenusOnePlaceGate.IsCentred W, which adds no data and whose two fields express that the bijection attaches to each affine point a place centred at that point in coordinates. Explicitly: for all x,y\in F and every proof h that (x,y) is a nonsingular point of W, writing v for the place placeOfPoint (Point.some x y h), the field requires that the image in the function field, under the map from the coordinate ring of W, of the class CoordinateRing.XClass W x of X - x lies in the non-units of the valuation subring of v, and likewise that the image of the class CoordinateRing.YClass W (Polynomial.C y) of Y - y lies in the non-units of that valuation subring. Membership in the non-units of a valuation subring means valuation strictly less than 1, that is, strictly positive order at v; so the maximal ideal of v contains X - x and Y - y.
Two lemmas, algebraMap_XClass_mem_nonunits and algebraMap_YClass_mem_nonunits, restate the two fields as standalone statements with x and y implicit.
Relation to Mathlib
The coordinate ring, the function field, XClass/YClass, Nonsingular and Point.some are Mathlib's notions for affine Weierstrass curves; the notion of a place of a function field used here (a valuation subring containing the constants, proper, and a principal ideal ring) and the gate classes relating points to places are the project's own.
Where it is used
The bijection carried by GenusOnePlaceGate W is a priori arbitrary, and the companion class AbelTheorem W constrains it only up to composition with an automorphism and a translation of the point group; requiring it to be centred at each affine point forces it to be the geometric dictionary, sending a point to the place of the function field it determines. This mixin is therefore assumed in those statements where the maps transported along the Abel–Jacobi identification genusOnePic0Equiv interact with coordinates — reduction of points, Frobenius on points, explicit isogeny formulae — rather than with the group structure alone.
References
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 1986
- H. Stichtenoth, Algebraic Function Fields and Codes, Universitext, Springer, 1993
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 41 lines
- 5 declarations
- used in the statements of 44 theorems and imported by 55 proofs
- imports 1 definition modules
Source file: Definitions/Def_WeierstrassCurve_GenusOnePlaceGateCentred.lean
Imported by
- no other definition module
Declarations
- class
WeierstrassCurve.Affine.GenusOnePlaceGate.IsCentred - field
WeierstrassCurve.Affine.GenusOnePlaceGate.IsCentred.XClass_mem_nonunits - field
WeierstrassCurve.Affine.GenusOnePlaceGate.IsCentred.YClass_mem_nonunits - theorem
WeierstrassCurve.Affine.GenusOnePlaceGate.IsCentred.algebraMap_XClass_mem_nonunits - theorem
WeierstrassCurve.Affine.GenusOnePlaceGate.IsCentred.algebraMap_YClass_mem_nonunits
Source
import Mathlib import Definitions.Def_WeierstrassCurve_GenusOnePic0 set_option autoImplicit false namespace WeierstrassCurve.Affine universe u variable {F : Type u} [Field F] variable (W : Affine F) in class GenusOnePlaceGate.IsCentred [GenusOnePlaceGate W] : Prop where XClass_mem_nonunits : ∀ (x y : F) (h : W.Nonsingular x y), algebraMap W.CoordinateRing W.FunctionField (CoordinateRing.XClass W x) ∈ (placeOfPoint (Point.some x y h)).toValuationSubring.nonunits YClass_mem_nonunits : ∀ (x y : F) (h : W.Nonsingular x y), algebraMap W.CoordinateRing W.FunctionField (CoordinateRing.YClass W (Polynomial.C y)) ∈ (placeOfPoint (Point.some x y h)).toValuationSubring.nonunits namespace GenusOnePlaceGate.IsCentred variable {W : Affine F} [GenusOnePlaceGate W] [GenusOnePlaceGate.IsCentred W] theorem algebraMap_XClass_mem_nonunits {x y : F} (h : W.Nonsingular x y) : algebraMap W.CoordinateRing W.FunctionField (CoordinateRing.XClass W x) ∈ (placeOfPoint (Point.some x y h)).toValuationSubring.nonunits := XClass_mem_nonunits x y h theorem algebraMap_YClass_mem_nonunits {x y : F} (h : W.Nonsingular x y) : algebraMap W.CoordinateRing W.FunctionField (CoordinateRing.YClass W (Polynomial.C y)) ∈ (placeOfPoint (Point.some x y h)).toValuationSubring.nonunits := YClass_mem_nonunits x y h end GenusOnePlaceGate.IsCentred end WeierstrassCurve.Affine
Statements phrased using this module (44)
- Existence of a centred genus-one place gate with Abel's theorem
WeierstrassCurve.Affine.exists_genusOnePlaceGate_isCentred_and_abelTheorem2 below · depth 8 - Vélu quotient isogeny via places, odd order case
WeierstrassCurve.exists_veluFunctionFieldHom_restrictAlong_placeOfPoint_eq50 below · depth 8 - Uniqueness of the centred genus-one place gate
WeierstrassCurve.Affine.GenusOnePlaceGate.ext_of_isCentred5 below · depth 9 - At the place of the origin, x is not integral
WeierstrassCurve.Affine.algebraMap_mk_C_X_notMem_toValuationSubring_placeOfPoint_zero5 below · depth 9 - Centred gate: place of an affine point is the (x,y)-adic place
WeierstrassCurve.Affine.placeOfPoint_some_eq_ofHeightOneSpectrum2 below · depth 9 - Cyclic kernel of order N forces Φ_N(j(E),j(E'))=0
WeierstrassCurve.Affine.eval_modularPolynomial_map_j_eq_zero_of_isAddCyclic_ker_pointMapOfPushforward91 below · depth 10 - Vélu function-field embedding with point map of kernel ⟨ Q⟩
WeierstrassCurve.exists_veluFunctionFieldHom_pointMapOfPushforward_ker_eq_zmultiples51 below · depth 10 - Cyclic N-isogeny of lattice curves comes from index-N sublattice
PeriodPair.exists_scale_lattice_subset_and_sublatticeIndex_eq_and_isAddCyclic_sublatticeQuotient58 below · depth 11 - Non-integral j forces endomorphisms to be integer multiplications
WeierstrassCurve.Affine.IsogenyEndDatum.exists_forall_pointEnd_eq_zsmul_of_not_isIntegral_j169 below · depth 11 - Base change of a cyclic kernel of order N
WeierstrassCurve.Affine.exists_algHom_baseChange_of_isAddCyclic_ker_pointMapOfPushforward56 below · depth 11 - Existence of a centred genus-one place gate with Abel's theorem
WeierstrassCurve.Affine.exists_genusOnePlaceGate_isCentred_abelTheorem11 below · depth 11 - Cyclic degree-N function-field seams descend to countable subfields
WeierstrassCurve.Affine.exists_intermediateField_countable_map_eq_of_isAddCyclic_ker_pointMapOfPushforward59 below · depth 11 - Norm formula along isogeny endomorphism data in characteristic zero
WeierstrassCurve.Affine.forall_normFormulaAlong_of_isAlgClosed_of_charZero31 below · depth 11 - Cyclic kernel and its order transport along function-field isomorphisms
WeierstrassCurve.Affine.isAddCyclic_ker_pointMapOfPushforward_of_algEquiv_conj55 below · depth 11 - Equal j of Vélu quotients forces equal cyclic subgroups
WeierstrassCurve.zmultiples_eq_of_veluQuotient_j_eq_of_forall_pointEnd_eq_zsmul70 below · depth 11 - Lifting a function-field map of complex tori to an entire function
PeriodPair.exists_differentiable_toPoint_comp_eq_pointMapOfPushforward_toPoint55 below · depth 12 - Degree-N endomorphism forces Φ_N(j(E),j(E))=0
WeierstrassCurve.Affine.IsogenyEndDatum.aeval_j_diag_eq_zero_of_finrankAlong_eq87 below · depth 12 - Nonzero elements of the isogeny subring come from isogeny data
WeierstrassCurve.Affine.IsogenyEndDatum.exists_pointEnd_eq_of_mem_isogenyEndSubring41 below · depth 12 - Non-integral isogeny endomorphism forces an imaginary quadratic degree form
WeierstrassCurve.Affine.IsogenyEndDatum.exists_sq_lt_four_mul_and_forall_exists_finrankAlong_eq51 below · depth 12 - Factoring an isogeny through one with smaller kernel
WeierstrassCurve.Affine.IsogenyHomDatum.exists_pointHom_comp_eq_of_ker_le_of_isCentred52 below · depth 12 - Cyclic kernel of order N descends along base change
WeierstrassCurve.Affine.isAddCyclic_ker_pointMapOfPushforward_of_baseChange_algHom56 below · depth 12 - Existence of dual endomorphism data with norm the degree
WeierstrassCurve.Affine.IsogenyEndDatum.exists_dualEndData_dual_mem_and_norm_eq_finrankAlong44 below · depth 13 - Transcendental j forces every isogeny endomorphism to be an integer
WeierstrassCurve.Affine.IsogenyEndDatum.exists_forall_pointEnd_eq_zsmul_of_transcendental_j169 below · depth 13 - Isogeny-induced endomorphisms of E(F) are closed under addition
WeierstrassCurve.Affine.IsogenyEndDatum.exists_pointEnd_eq_add40 below · depth 13 - Point map of an isogeny datum: restriction minus value at O
WeierstrassCurve.Affine.IsogenyHomDatum.pointHom_apply_eq_sub0 below · depth 13 - Integral maps into K(E) determined by action on places
WeierstrassCurve.Affine.algHom_ext_of_forall_restrictAlong_placeOfPoint_eq38 below · depth 13 - Translation by R as a function-field automorphism on places
WeierstrassCurve.Affine.exists_algEquiv_restrictAlong_placeOfPoint_eq_add38 below · depth 13 - Equal j of Vélu quotients forces equal cyclic subgroups
WeierstrassCurve.zmultiples_eq_of_veluQuotient_j_eq_of_forall_isogenyEndDatum_exists_int70 below · depth 13 - Pointwise sum of two isogeny end data is realised
WeierstrassCurve.Affine.IsogenyEndDatum.exists_restrictAlong_placeOfPoint_eq_add38 below · depth 14 - Kernel rigidity for isogenies out of a curve with End=ℤ
WeierstrassCurve.Affine.ker_pointMapOfPushforward_eq_of_j_eq_of_forall_pointEnd_eq_zsmul65 below · depth 14 - Vélu's 2-isogeny: function-field embedding matching places
WeierstrassCurve.exists_velu2FunctionFieldHom_restrictAlong_placeOfPoint_veluPointMap211 below · depth 14 - A place centred at (x,y) is the gate's place of (x,y)
WeierstrassCurve.Affine.eq_placeOfPoint_some_of_XClass_mem_nonunits_of_YClass_mem_nonunits5 below · depth 15 - Full-kernel Vélu quotient: pushforward point map has kernel ℤQ
WeierstrassCurve.exists_functionFieldHom_fullKernelQuotient_pointMapOfPushforward_ker_eq_zmultiples81 below · depth 15 - Vélu pushforward point map has kernel ℤQ
WeierstrassCurve.exists_veluFunctionFieldHom_pointMapOfPushforward_ker_eq_zmultiples_of_oddOrder51 below · depth 16 - Vélu function-field extension for an odd cyclic kernel
WeierstrassCurve.exists_veluFunctionFieldHom_restrictAlong_placeOfPoint_eq_of_isAlgClosed50 below · depth 17 - Equal-degree separable isogenies with nested kernels: isomorphic targets
WeierstrassCurve.Affine.IsogenyHomDatum.exists_algEquiv_of_ker_le_of_finrankAlong_eq69 below · depth 18 - Separable isogenies factor through maps with smaller kernel
WeierstrassCurve.Affine.IsogenyHomDatum.exists_pointHom_comp_eq_of_ker_le_of_separableAlong67 below · depth 18 - Isogeny datum: induced map is place restriction minus origin
WeierstrassCurve.Affine.IsogenyHomDatum.pointHom_apply_eq_pointEquivPlace_sub0 below · depth 18 - Multiplication by n as an isogeny endomorphism datum
WeierstrassCurve.Affine.exists_isogenyEndDatum_restrictAlong_placeOfPoint_eq_smul28 below · depth 18 - Isomorphism of function fields matching 𝒪 is a variable change
WeierstrassCurve.Affine.exists_variableChange_forall_restrictAlong_placeOfPoint_eq_of_algEquiv10 below · depth 18 - Norm formula along every isogeny endomorphism datum over ̄ F
WeierstrassCurve.Affine.forall_normFormulaAlong_of_isAlgClosed46 below · depth 18 - An integral K-embedding into K(E) is determined by its action on places
WeierstrassCurve.Affine.algHom_eq_of_forall_restrictAlong_placeOfPoint_eq57 below · depth 19 - Translation by a point as a function-field automorphism
WeierstrassCurve.Affine.exists_algEquiv_forall_restrictAlong_placeOfPoint_eq_add57 below · depth 19 - Pushforward norm formula along isogeny endomorphisms in characteristic p
WeierstrassCurve.Affine.forall_normFormulaAlong_of_isAlgClosed_of_charP_pos21 below · depth 19