Documentation

MazurTorsion.Kubert.TateNormalForm

Tate normal form #

Reusable foundations for the Tate normal form

y² + (1-c)xy - by = x³ - bx²

with marked point P = (0,0). This file provides the normalization theorem retaining the discriminant scale and kernel-checked low-multiple coordinate formulas. It does not state an order classification theorem.

Tate normal form y² + (1-c)xy - by = x³ - bx², with marked point (0,0).

Equations
Instances For

    The marked origin is nonsingular whenever the Tate parameter b is nonzero.

    If the tangent at the origin has triple contact, then the origin is killed by three. This is the small group-law fact used during Tate normalization.

    theorem MazurTorsion.Kubert.exists_tateNormalCurve_scaled (W : WeierstrassCurve ) [W.IsElliptic] (P : W.toAffine.Point) (hP2 : P + P 0) (hP3 : P + P + P 0) :
    ∃ (b : ) (c : ) (u : ) (_ : u 0) (_ : b 0) (h00 : (tateNormalCurve b c).toAffine.Nonsingular 0 0) (e : W.toAffine.Point ≃+ (tateNormalCurve b c).toAffine.Point), e P = WeierstrassCurve.Affine.Point.some 0 0 h00 u ^ 12 * W.Δ = (tateNormalCurve b c).Δ u ^ 4 * W.c₄ = (tateNormalCurve b c).c₄ u ^ 6 * W.c₆ = (tateNormalCurve b c).c₆

    Tate normalization retaining the discriminant and c₄ scaling parameters.

    The marked point P = (0,0) doubles to (b,bc) on Tate normal form.

    The marked point P = (0,0) triples to (c,b-c) on Tate normal form.

    In scalar-multiplication notation, 2P = (b,bc) for the marked Tate point.

    In scalar-multiplication notation, 3P = (c,b-c) for the marked Tate point.

    theorem MazurTorsion.Kubert.four_mul_origin_coordinates (b c : ) (hb : b 0) (hc : c 0) (h00 : (tateNormalCurve b c).toAffine.Nonsingular 0 0) :
    ∃ (h₄ : (tateNormalCurve b c).toAffine.Nonsingular (b * (b - c) / c ^ 2) (b ^ 2 * (c ^ 2 + c - b) / c ^ 3)), WeierstrassCurve.Affine.Point.some 0 0 h00 + WeierstrassCurve.Affine.Point.some 0 0 h00 + WeierstrassCurve.Affine.Point.some 0 0 h00 + WeierstrassCurve.Affine.Point.some 0 0 h00 = WeierstrassCurve.Affine.Point.some (b * (b - c) / c ^ 2) (b ^ 2 * (c ^ 2 + c - b) / c ^ 3) h₄

    If also c ≠ 0, then 4P has the displayed rational coordinates.