The (affine) coordinate ring of a plane curve cut out by a bivariate polynomial
f₀ ∈ k[X][Y], defined as the quotient k[X][Y]/(f₀) via AdjoinRoot.
Instances For
The function field of a plane curve, defined as the field of fractions of its
coordinate ring k[X][Y]/(f₀).
Instances For
If the defining polynomial f₀ of the curve is prime, then the coordinate ring
k[X][Y]/(f₀) is an integral domain.
When f₀ is prime, the function field of the curve is a genuine field, obtained
as the fraction field of the integral coordinate ring.
The ring homomorphism that dehomogenizes a polynomial in three projective
variables by setting the third coordinate to 1, sending X₀ ↦ X, X₁ ↦ Y,
X₂ ↦ 1.
Instances For
Dehomogenize a homogeneous polynomial in MvPolynomial (Fin 3) k to a bivariate
polynomial in k[X][Y] by substituting Z = 1.
Instances For
Dehomogenization sends the projective coordinate X₀ to the bivariate
polynomial X.
Dehomogenization sends the projective coordinate X₁ to the bivariate
polynomial Y.
Dehomogenization sends the projective coordinate X₂ (the homogenizing
variable) to 1.
Dehomogenization sends the constant a ∈ k to itself viewed as a constant in
k[X][Y].
The coordinate ring of the affine chart {Z = 1} of a projective plane curve
defined by a homogeneous polynomial f ∈ k[X₀, X₁, X₂].
Instances For
The function field of a projective plane curve obtained as the fraction field
of the affine coordinate ring of its {Z = 1} chart.
Instances For
An affine point of the curve f₀ = 0 over an extension algebra L of k,
consisting of coordinates x, y ∈ L satisfying the defining equation.
- x : L
- y : L
Instances For
Evaluation ring homomorphism from the coordinate ring k[X][Y]/(f₀) to L
induced by a point P = (x, y) of the curve over L.
Instances For
Evaluating a class [p] ∈ k[X][Y]/(f₀) at a point P of the curve agrees with
substituting P.x, P.y into the representative p.
An affine point of f₀ = 0 with coordinates in the base ring k.
- x : k
- y : k
Instances For
Evaluation ring homomorphism from the coordinate ring k[X][Y]/(f₀) to the
base ring k induced by an affine point P.
Instances For
Evaluating a class [p] ∈ k[X][Y]/(f₀) at an affine k-point P agrees with
substituting P.x, P.y into the representative p.
The two-variable evaluation map eval₂RingHom (algebraMap k k) a coincides
with Polynomial.evalRingHom a, since algebraMap k k = id.
Coerce a k-rational affine point into an affine point over k viewed as a
k-algebra.
Instances For
A function φ on the curve is regular at an L-point P if it can be written
as g/h with h not vanishing at P.
Instances For
A function on the curve is regular at a k-rational affine point P if it
admits a representation g/h with h(P) ≠ 0.
Instances For
A function φ is regular and nonzero at a k-rational affine point P if it
has a representation g/h with h(P) ≠ 0 and g(P) ≠ 0.
Instances For
Bivariate evaluation: evaluate f ∈ k[X][Y] at scalars (a, b) ∈ R × R for a
k-algebra R, by mapping coefficients via algebraMap k R.
Instances For
A rational map from the curve f₁ = 0 to the curve f₂ = 0, represented by a
triple of elements (φ₁ : φ₂ : φ₃) in the function field of f₁, not all zero,
such that whenever (φ₁ : φ₂ : φ₃) is defined at a point with φ₃ ≠ 0, the image
lies on f₂.
- φ₁ : FunctionField f₁
- φ₂ : FunctionField f₁
- φ₃ : FunctionField f₁
- image_on_curve (K : Type u) [Field K] [Algebra k K] [IsAlgClosed K] (P : AffinePointOver f₁ K) (g₁ g₂ g₃ : CoordinateRing f₁) (h : ↥(nonZeroDivisors (CoordinateRing f₁))) : self.φ₁ = IsLocalization.mk' (FunctionField f₁) g₁ h → self.φ₂ = IsLocalization.mk' (FunctionField f₁) g₂ h → self.φ₃ = IsLocalization.mk' (FunctionField f₁) g₃ h → P.evalRingHom ↑h ≠ 0 → P.evalRingHom g₁ ≠ 0 ∨ P.evalRingHom g₂ ≠ 0 ∨ P.evalRingHom g₃ ≠ 0 → P.evalRingHom g₃ ≠ 0 → evalBivariate f₂ (P.evalRingHom g₁ / P.evalRingHom g₃) (P.evalRingHom g₂ / P.evalRingHom g₃) = 0
Instances For
A rational map φ is regular at an affine k-point P if there is a
nonzero scalar μ in the function field such that all three coordinates μ·φᵢ
are regular at P and at least one is regular and nonzero there.
Instances For
Field-valued version of IsRegularNonzeroAt: a function is regular and nonzero
at an L-point P if it equals g/h for h(P) ≠ 0 and g(P) ≠ 0.
Instances For
Field-valued regularity for rational maps: there exists a rescaling μ so that
each coordinate is regular at P and at least one is regular and nonzero.
Instances For
A projective point on the curve f₀ = 0 over an extension field K, either an
affine point or a point at infinity given by a nonzero direction (a, b).
- affine {k : Type u} [CommRing k] {f₀ : Polynomial (Polynomial k)} {K : Type u} [Field K] [Algebra k K] : AffinePointOver f₀ K → ProjectiveCurvePointOver f₀ K
- atInfinity {k : Type u} [CommRing k] {f₀ : Polynomial (Polynomial k)} {K : Type u} [Field K] [Algebra k K] (a b : K) : a ≠ 0 ∨ b ≠ 0 → ProjectiveCurvePointOver f₀ K
Instances For
Regularity of a rational map at a projective point: in the affine case use
IsRegularAtOver; at infinity, require that some scaling makes all coordinates
into a common ratio whose numerators are not all zero.
Instances For
A rational map is a morphism if it is regular at every projective point of the source curve over every algebraically closed extension.
Instances For
A morphism of plane curves is a rational map together with a proof that it is regular everywhere.
- φ₁ : FunctionField f₁
- φ₂ : FunctionField f₁
- φ₃ : FunctionField f₁
- image_on_curve (K : Type u) [Field K] [Algebra k K] [IsAlgClosed K] (P : AffinePointOver f₁ K) (g₁ g₂ g₃ : CoordinateRing f₁) (h : ↥(nonZeroDivisors (CoordinateRing f₁))) : self.φ₁ = IsLocalization.mk' (FunctionField f₁) g₁ h → self.φ₂ = IsLocalization.mk' (FunctionField f₁) g₂ h → self.φ₃ = IsLocalization.mk' (FunctionField f₁) g₃ h → P.evalRingHom ↑h ≠ 0 → P.evalRingHom g₁ ≠ 0 ∨ P.evalRingHom g₂ ≠ 0 ∨ P.evalRingHom g₃ ≠ 0 → P.evalRingHom g₃ ≠ 0 → evalBivariate f₂ (P.evalRingHom g₁ / P.evalRingHom g₃) (P.evalRingHom g₂ / P.evalRingHom g₃) = 0
- regular_everywhere : self.IsMorphism
Instances For
The underlying rational map of a Morphism is, by construction, a morphism.
Partial derivative with respect to Y of a bivariate polynomial in k[X][Y],
implemented as the formal derivative in the outer (Y) variable.
Instances For
Partial derivative with respect to X of a bivariate polynomial in k[X][Y],
obtained by differentiating each coefficient.
Instances For
A plane curve f₀ = 0 is smooth if at every affine k-point at least one
of the two partial derivatives is nonzero.
Instances For
Every rational map out of a smooth plane curve extends to a morphism: this is the curve-theoretic fact that a rational map from a smooth curve is automatically regular at every point.
A morphism φ maps an affine point P of the source to an affine point Q
of the target if the three coordinate ratios can be rescaled to send P to Q.
Instances For
A morphism is surjective on affine k-points if every target affine point has
at least one preimage.
Instances For
A morphism is constant if there is a single target point that every source point is mapped to.
Instances For
Dichotomy for morphisms between plane curves over a field: a morphism is either
surjective on affine k-points or constant.
A rational map φ is non-constant if the affine ratios φ₁/φ₃ and φ₂/φ₃ do
not both lie in the image of the constant map k → k(f₁).
Instances For
A point P of the projective plane ℙ²(L) lies on the projective curve cut
out by a homogeneous polynomial f ∈ k[X₀, X₁, X₂] if f vanishes on any
representative of P.
Instances For
The set of L-points of the projective curve f = 0.
Instances For
Points of the projective curve f = 0 over the algebraic closure of k.
Instances For
Unfolding lemma for membership in ProjectiveCurvePoints: a projective point
P lies on f = 0 iff f evaluates to zero on its representative.
An element of the function field of the projective curve f = 0 is regular
at a projective point P if it can be expressed as a ratio g/h of homogeneous
polynomials of equal degree with h not vanishing on P.
Instances For
Embed an affine point (a, b) ∈ L² into the projective plane ℙ²(L) as the
point [a : b : 1].
Instances For
The projective plane over the function field of a plane curve f₁.
Instances For
Data for an isogeny α : E₁ → E₂ in standard form: rational functions
u, v, s, t ∈ F[X] such that the x-coordinate transforms as u/v and the
y-coordinate transforms as (s/t)·y, with the coprimality and nonvanishing
conditions required for this to be in lowest terms.
- u : Polynomial F
- v : Polynomial F
- s : Polynomial F
- t : Polynomial F
Instances For
The degree of an isogeny in standard form: deg α := max (deg u) (deg v)
(see Definition for Theorem 5.22 / standard-form degree).
Instances For
An isogeny in standard form is separable if u'v - uv' ≠ 0.
Instances For
An isogeny is inseparable if it is not separable.
Instances For
The coordinate ring of a Weierstrass curve W (in the sense of Mathlib's
WeierstrassCurve.Affine.CoordinateRing) agrees definitionally with the
ProjectiveCurve.CoordinateRing of its defining bivariate polynomial.
The function field of a Weierstrass curve is a field.
The function field of a Weierstrass curve is the fraction field of its coordinate ring.
An isogeny E₁ → E₂ between Weierstrass curves: a surjective group
homomorphism between their group-of-points along with a positive integer
"degree" attribute. (See Sutherland, definitions surrounding §5.1 — an isogeny
is a surjective morphism of elliptic curves that sends the identity to the
identity.)
- surjective : Function.Surjective ⇑self.toAddMonoidHom
- degree : ℕ
Instances For
An isogeny may be applied to points like a function.
Isogenies are group homomorphisms: φ (P + Q) = φ P + φ Q.
Isogenies send the identity to the identity.
Isogenies commute with negation.
Two elliptic curves are isogenous if there is at least one isogeny from the first to the second.
Instances For
Composition of isogenies: comp ψ φ applies φ then ψ and multiplies the
recorded degrees.
Instances For
The composition of isogenies acts pointwise as the composition of functions.
The identity isogeny on a Weierstrass curve, of degree 1.
Instances For
The identity isogeny acts as the identity function on points.
An isogeny is an isomorphism if it admits a two-sided inverse isogeny.
Instances For
Two elliptic curves are isomorphic if there is a pair of mutually-inverse isogenies between them.
Instances For
The extension degree [k(E₁) : k(E₂)] of function fields associated to an
isogeny φ : E₁ → E₂, computed via Module.finrank.
Instances For
A rational map between the Weierstrass curves underlying E₁ and E₂ sends
the base point (the point at infinity) of E₁ to the base point of E₂ if the
second coordinate φ₂ is nonzero and the ratios φ₁/φ₂, φ₃/φ₂ come from the
coordinate ring (so the rational map is regular at infinity, where the third
coordinate vanishes).
Instances For
Alternative geometric definition of an isogeny: a non-constant rational map between Weierstrass curves which sends the base point to the base point.
- toRationalMap : ProjectiveCurve.RationalMap E₁.polynomial E₂.polynomial
- nonConstant : self.toRationalMap.IsNonConstant
- sendsBasePointToBasePoint : self.toRationalMap.SendsBasePointToBasePoint
Instances For
The group-theoretic definition (Isogeny) and the geometric definition
(IsogenyAlt) of an isogeny agree: there exists an Isogeny E₁ E₂ if and only
if there exists an IsogenyAlt E₁ E₂.
An isogeny in standard form together with curve data: the polynomial `f₁ = x³
- ax + b
of the source curve, an auxiliary polynomialw, and the identityv³ · (s²f₁) = t² · w(along withIsCoprime v wandSquarefree f₁). This packages the algebraic conditions needed to prove the divisibility lemmav³ ∣ t²`.
- u : Polynomial F
- v : Polynomial F
- s : Polynomial F
- t : Polynomial F
- coprime_uv : IsCoprime self.u self.v
- coprime_st : IsCoprime self.s self.t
- f₁ : Polynomial F
- w : Polynomial F
- squarefree_f₁ : Squarefree self.f₁
Instances For
From the identity v³(s²f₁) = t²w with gcd(v, w) = 1 we deduce v³ ∣ t².
A triple of homogeneous polynomials of common degree deg in three variables,
used to represent a candidate rational map between projective plane curves.
- ψ_x : MvPolynomial (Fin 3) k
- ψ_y : MvPolynomial (Fin 3) k
- ψ_z : MvPolynomial (Fin 3) k
- deg : ℕ
- hom_x : self.ψ_x.IsHomogeneous self.deg
- hom_y : self.ψ_y.IsHomogeneous self.deg
- hom_z : self.ψ_z.IsHomogeneous self.deg
Instances For
Convert a HomogeneousTriple into the Fin 3 → MvPolynomial _ k function
suitable for MvPolynomial.bind₁.
Instances For
Substitute the components of a homogeneous triple into a polynomial f,
i.e. compute f(ψ_x, ψ_y, ψ_z).
Instances For
A rational map from the projective curve f₁ = 0 to f₂ = 0, represented by
a homogeneous triple whose components are not all in the ideal (f₁), and which
satisfies f₂(ψ_x, ψ_y, ψ_z) ∈ (f₁) (so the image lies on f₂).
- ψ_x : MvPolynomial (Fin 3) k
- ψ_y : MvPolynomial (Fin 3) k
- ψ_z : MvPolynomial (Fin 3) k
- hom_x : self.ψ_x.IsHomogeneous self.deg
- hom_y : self.ψ_y.IsHomogeneous self.deg
- hom_z : self.ψ_z.IsHomogeneous self.deg
- not_all_in_ideal : self.ψ_x ∉ Ideal.span {f₁} ∨ self.ψ_y ∉ Ideal.span {f₁} ∨ self.ψ_z ∉ Ideal.span {f₁}
Instances For
Two rational-map triples are equivalent if all pairwise cross-products
ψ_i^(1) ψ_j^(2) - ψ_j^(1) ψ_i^(2) lie in the ideal (f₁).
Instances For
Reflexivity of triple equivalence: every rational map triple is equivalent to itself.
Symmetry of triple equivalence.
Transitivity of triple equivalence, assuming the ideal (f₁) is prime so we
can cancel a non-vanishing component of the middle triple.
RationalMapTriple modulo equivalence is a Setoid, provided (f₁) is
prime so that transitivity holds.
Alternative definition of a rational map from f₁ = 0 to f₂ = 0, as a
quotient of the type of RationalMapTriples by the equivalence relation.
Instances For
A rational-map triple t is defined at a point P if at least one of its
homogeneous components is nonzero on P.
Instances For
An additive group endomorphism of E(F) is algebraic if it is either the
zero map or comes from some Isogeny E E.
Instances For
The endomorphism ring End(E) of E, defined as the subtype of additive
endomorphisms of E.Point which are algebraic.
Instances For
An additive automorphism of E.Point is algebraic if it comes from a pair
of mutually-inverse isogenies.
Instances For
The automorphism group Aut(E) of E, the subtype of additive automorphisms
of E.Point arising from isogenies.
Instances For
Extract the underlying additive endomorphism from an element of
EndomorphismRing E.
Instances For
Every isogeny E → E is an algebraic endomorphism of E.Point.
Instances For
The zero endomorphism in EndomorphismRing E.
Instances For
The identity endomorphism in EndomorphismRing E.
Instances For
Apply an algebraic endomorphism to a point of E.
Instances For
The endomorphism ring End(E) of an elliptic curve is a (noncommutative)
ring; the proof requires geometric content and is left as sorry.
A representation of an isogeny α : E₁ → E₂ in standard form: it records
(u, v, s, t) ∈ F[X] and the fact that on a nonsingular point (x₀, y₀) with
v(x₀) ≠ 0, α sends (x₀, y₀) ↦ (u(x₀)/v(x₀), (s(x₀)/t(x₀))·y₀); in the
"pole" case v(x₀) = 0 and u(x₀) ≠ 0, the image is the identity.
- u : Polynomial F
- v : Polynomial F
- s : Polynomial F
- t : Polynomial F
- coprime_uv : IsCoprime self.u self.v
- coprime_st : IsCoprime self.s self.t
- represents (x₀ y₀ : F) (h₁ : E₁.Nonsingular x₀ y₀) (_hv : Polynomial.eval x₀ self.v ≠ 0) : ∃ (h₂ : E₂.Nonsingular (Polynomial.eval x₀ self.u / Polynomial.eval x₀ self.v) (Polynomial.eval x₀ self.s / Polynomial.eval x₀ self.t * y₀)), α.toAddMonoidHom (WeierstrassCurve.Affine.Point.some x₀ y₀ h₁) = WeierstrassCurve.Affine.Point.some (Polynomial.eval x₀ self.u / Polynomial.eval x₀ self.v) (Polynomial.eval x₀ self.s / Polynomial.eval x₀ self.t * y₀) h₂
- maps_poles_to_zero (x₀ y₀ : F) (h₁ : E₁.Nonsingular x₀ y₀) (_hv : Polynomial.eval x₀ self.v = 0) (_hu : Polynomial.eval x₀ self.u ≠ 0) : α.toAddMonoidHom (WeierstrassCurve.Affine.Point.some x₀ y₀ h₁) = 0
Instances For
For curves in short Weierstrass form, every isogeny α : E₁ → E₂ admits an
IsogenyRepresentation in standard form (proved geometrically; left as
sorry).
Instances For
If the denominator polynomial v of the standard form does not vanish at
x₀, then the point (x₀, y₀) is not in the kernel of α.
Conversely, if v(x₀) = 0 then u(x₀) ≠ 0 (using IsCoprime u v), so the
"pole" case of the representation forces (x₀, y₀) to be in the kernel.
Combining the previous two: (x₀, y₀) lies in the kernel of α iff
v(x₀) = 0. This characterizes affine points of the kernel via the standard
form.
For a fixed x₀ ∈ F, only finitely many y₀ make (x₀, y₀) a nonsingular
point of E₁, because such y₀ are roots of the (nonzero) specialization of the
Weierstrass polynomial at x₀.
Extract the affine coordinates (x, y) of a point of E₁, mapping the
identity to none.
Instances For
The coordinate-extraction function is injective.
Given a standard-form representation of α, the kernel of α is finite:
its image under pointToCoords is contained in {none} ∪ {(x₀,y₀) : v(x₀) = 0 ∧ E₁.Nonsingular x₀ y₀}, which is finite by the previous lemmas.
Corollary: the kernel of any isogeny between short Weierstrass curves is a
finite set of points. Combined with isogeny_standard_form, this is a key
finiteness statement underlying the degree theory of isogenies.
Over an algebraically closed field of characteristic p, if α decomposes
as a separable isogeny α_sep precomposed with the p^n-th power Frobenius
(i.e. u = α_sep.u ∘ X^{p^n} and similarly for v), then the cardinality of
the kernel of α equals the degree of its separable part α_sep. (This is the
key relation between the kernel size and the separable degree of an isogeny.)