Points of Weierstrass curves over finite fields: decidability and finiteness #
Source: MichaelStollBayreuth/EllipticCurves at commit 3f8c39c0fc4c0fd0a40e693aa2a9bbda08d9ee1f.
Exact-pin changes are documented in PORTING.md.
This file provides Decidable instances for the predicates WeierstrassCurve.Affine.Equation
and WeierstrassCurve.Affine.Nonsingular (over any commutative ring with decidable equality),
and deduces Finite and Fintype instances for the type WeierstrassCurve.Affine.Point of
nonsingular points of a Weierstrass curve over a finite ring, via Mathlib's
WeierstrassCurve.Affine.nonsingularPointEquiv.
The decision procedure goes through equation_iff/nonsingular_iff, so it evaluates the
Weierstrass polynomials directly in the base ring, with no Polynomial arithmetic involved.
Consequently, for a concrete curve over ZMod p the number of points is computable by decide:
Fintype.card W.Point enumerates the pairs in ZMod p × ZMod p and filters by the (decidable)
nonsingularity condition.
We also provide WeierstrassCurve.Affine.Point.mapEquiv, the group isomorphism on points
induced by an isomorphism of base fields (the equiv version of
WeierstrassCurve.Affine.Point.map); it transports point counts along residue-field
identifications such as ℤ ⧸ (p) ≃+* ZMod p.
Equations
- WeierstrassCurve.Affine.instFintypePointOfDecidableEq = Fintype.ofEquiv (Option { xy : R × R // W'.Nonsingular xy.1 xy.2 }) W'.nonsingularPointEquiv.symm
Base change from a field to itself leaves an affine Weierstrass curve unchanged.
Transport of points along an equality of Weierstrass curves.
Equations
Instances For
The base-change homomorphism on points induced by a field extension.
Equations
Instances For
Base change preserves nonsingularity, with the target expressed using the canonical base-changed affine curve.
Base change of points along a field extension is injective.
The group isomorphism on nonsingular points induced by an algebra isomorphism
σ : F ≃ₐ[S] K, where W is defined over a subring of a ring S, and F and K are field
extensions of S; the equiv version of WeierstrassCurve.Affine.Point.map.
Equations
- One or more equations did not get rendered due to their size.