Documentation

EllipticCurves.WeierstrassFormalGroup.Eval

Evaluation of the formal group series of a Weierstrass curve #

Source: MichaelStollBayreuth/EllipticCurves at commit 3f8c39c0fc4c0fd0a40e693aa2a9bbda08d9ee1f.

For a Weierstrass curve W over a complete adic local ring O (the standing setting of the vendored p-adic kit), the fixed-point series w and the chord data evaluate at parameters t in the maximal ideal via ChabautyColeman.MvPSeries.eval. This file provides that evaluation layer: the value W.wEval t, its defining Weierstrass fixed-point equation, the factorization w(t) = tยณยทv(t) with v(t) โ‰ก 1 mod ๐”ช, the uniqueness of solutions of the fixed-point equation in ๐”ช, the evaluated chord data (W.slopeEval, W.interceptEval, W.thirdRootEval, W.addEval), and the formal inverse W.negPoint on the ๐”ช-points.

An element of 1 + ๐”ช in a local ring is a unit.

def WeierstrassCurve.wPoly {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) (t r : O) :
O

The Weierstrass fixed-point polynomial: the right-hand side of the equation w = tยณ + aโ‚tw + aโ‚‚tยฒw + aโ‚ƒwยฒ + aโ‚„twยฒ + aโ‚†wยณ satisfied by w = w(t).

Equations
Instances For
    theorem WeierstrassCurve.eq_of_wPoly_fixed {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) {t r r' : O} (ht : t โˆˆ IsLocalRing.maximalIdeal O) (hr : r โˆˆ IsLocalRing.maximalIdeal O) (hr' : r' โˆˆ IsLocalRing.maximalIdeal O) (h : r = W.wPoly t r) (h' : r' = W.wPoly t r') :
    r = r'

    Solutions in ๐”ช of the Weierstrass fixed-point equation at a parameter t โˆˆ ๐”ช are unique: the difference of two solutions is contracted by a factor in ๐”ช.

    theorem WeierstrassCurve.isUnit_chordCoeff {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) {ฮ› : O} (hฮ› : ฮ› โˆˆ IsLocalRing.maximalIdeal O) :
    IsUnit (1 + W.aโ‚‚ * ฮ› + W.aโ‚„ * ฮ› ^ 2 + W.aโ‚† * ฮ› ^ 3)

    The leading coefficient 1 + aโ‚‚ ฮ› + aโ‚„ ฮ›ยฒ + aโ‚† ฮ›ยณ of the chord cubic is a unit for ฮ› in the maximal ideal.

    theorem ChabautyColeman.MvPSeries.eval_mem_maximalIdeal_pow {O : Type u_1} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ฯƒ : Type u_2} {zโ‚€ : ฯƒ โ†’ O} (hzโ‚€ : MvPowerSeries.HasEval zโ‚€) {k : โ„•} (hmem : โˆ€ (i : ฯƒ), zโ‚€ i โˆˆ IsLocalRing.maximalIdeal O ^ k) (h : MvPowerSeries ฯƒ O) (hcc : MvPowerSeries.constantCoeff h โˆˆ IsLocalRing.maximalIdeal O ^ k) :

    The value at points of ๐”ช^k of a series whose constant coefficient lies in ๐”ช^k lies in ๐”ช^k.

    theorem ChabautyColeman.MvPSeries.eval_mem_maximalIdeal_pow_mul {O : Type u_1} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ฯƒ : Type u_2} {zโ‚€ : ฯƒ โ†’ O} (hzโ‚€ : MvPowerSeries.HasEval zโ‚€) {j c : โ„•} (hmem : โˆ€ (i : ฯƒ), zโ‚€ i โˆˆ IsLocalRing.maximalIdeal O ^ j) (h : MvPowerSeries ฯƒ O) (hcoeff : โˆ€ (d : ฯƒ โ†’โ‚€ โ„•), Finsupp.degree d < c โ†’ (MvPowerSeries.coeff d) h = 0) :

    The value at points of ๐”ช^j of a series whose coefficients vanish below total degree c lies in ๐”ช^(cยทj).

    theorem ChabautyColeman.MvPSeries.eval_mem_maximalIdeal_pow_add_mul {O : Type u_1} [CommRing O] [IsLocalRing O] [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {ฯƒ : Type u_2} {zโ‚€ : ฯƒ โ†’ O} (hzโ‚€ : MvPowerSeries.HasEval zโ‚€) {j a c : โ„•} (hmem : โˆ€ (i : ฯƒ), zโ‚€ i โˆˆ IsLocalRing.maximalIdeal O ^ j) (h : MvPowerSeries ฯƒ O) (hcoeff : โˆ€ (d : ฯƒ โ†’โ‚€ โ„•), (MvPowerSeries.coeff d) h โˆˆ IsLocalRing.maximalIdeal O ^ a) (hlow : โˆ€ (d : ฯƒ โ†’โ‚€ โ„•), Finsupp.degree d < c โ†’ (MvPowerSeries.coeff d) h = 0) :
    eval zโ‚€ h โˆˆ IsLocalRing.maximalIdeal O ^ (a + c * j)

    The value at points of ๐”ช^j of a series whose coefficients lie in ๐”ช^a and vanish below total degree c lies in ๐”ช^(a + cยทj).

    noncomputable def WeierstrassCurve.wEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (t : O) :
    O

    The value of the fixed-point series w at a parameter t.

    Equations
    Instances For
      noncomputable def WeierstrassCurve.vEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (t : O) :
      O

      The value of the unit-part series v (with w = tยณยทv) at a parameter t.

      Equations
      Instances For

        The value of w satisfies the Weierstrass fixed-point equation.

        The factorization w(t) = tยณ ยท v(t) of the value of w.

        Evaluation of the chord data #

        The values of u, its inverse, the formal inverse ฮน, and the two-parameter chord data (slope, intercept, third root, addition series) at parameters in the maximal ideal, with the evaluated forms of their defining identities.

        noncomputable def WeierstrassCurve.uEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (t : O) :
        O

        The value of the series u = 1 - aโ‚t - aโ‚ƒw(t) at a parameter t.

        Equations
        Instances For
          noncomputable def WeierstrassCurve.duEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (t : O) :
          O

          The value of the inverse of the series u at a parameter t.

          Equations
          Instances For
            noncomputable def WeierstrassCurve.iotaEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (t : O) :
            O

            The value of the formal inverse series ฮน at a parameter t.

            Equations
            Instances For

              A nonzero parameter that is its own formal inverse satisfies aโ‚ t + aโ‚ƒ w(t) = 2.

              Evaluation of a one-variable substitution is evaluation at the value.

              noncomputable def WeierstrassCurve.slopeEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (tโ‚ tโ‚‚ : O) :
              O

              The value of the slope series at a pair of parameters.

              Equations
              Instances For
                noncomputable def WeierstrassCurve.interceptEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (tโ‚ tโ‚‚ : O) :
                O

                The value of the intercept series at a pair of parameters.

                Equations
                Instances For
                  noncomputable def WeierstrassCurve.thirdRootEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (tโ‚ tโ‚‚ : O) :
                  O

                  The value of the third-root series at a pair of parameters.

                  Equations
                  Instances For
                    noncomputable def WeierstrassCurve.addEval {O : Type u_1} [CommRing O] (W : WeierstrassCurve O) [UniformSpace O] (tโ‚ tโ‚‚ : O) :
                    O

                    The value of the addition series at a pair of parameters.

                    Equations
                    Instances For
                      theorem WeierstrassCurve.slopeEval_mul_sub {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) :
                      W.slopeEval tโ‚ tโ‚‚ * (tโ‚‚ - tโ‚) = W.wEval tโ‚‚ - W.wEval tโ‚

                      The evaluated slope identity: ฮปฬ‚ยท(tโ‚‚ - tโ‚) = w(tโ‚‚) - w(tโ‚).

                      theorem WeierstrassCurve.interceptEval_eq {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) :
                      W.interceptEval tโ‚ tโ‚‚ = W.wEval tโ‚ - W.slopeEval tโ‚ tโ‚‚ * tโ‚

                      The evaluated intercept identity: ฮฝฬ‚ = w(tโ‚) - ฮปฬ‚ยทtโ‚.

                      theorem WeierstrassCurve.thirdRootEval_relation {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) :
                      (1 + W.aโ‚‚ * W.slopeEval tโ‚ tโ‚‚ + W.aโ‚„ * W.slopeEval tโ‚ tโ‚‚ ^ 2 + W.aโ‚† * W.slopeEval tโ‚ tโ‚‚ ^ 3) * (W.thirdRootEval tโ‚ tโ‚‚ + tโ‚ + tโ‚‚) = -(W.aโ‚ * W.slopeEval tโ‚ tโ‚‚ + W.aโ‚‚ * W.interceptEval tโ‚ tโ‚‚ + W.aโ‚ƒ * W.slopeEval tโ‚ tโ‚‚ ^ 2 + 2 * W.aโ‚„ * W.slopeEval tโ‚ tโ‚‚ * W.interceptEval tโ‚ tโ‚‚ + 3 * W.aโ‚† * W.slopeEval tโ‚ tโ‚‚ ^ 2 * W.interceptEval tโ‚ tโ‚‚)

                      The evaluated third-root relation, with the inverse of the cubic's leading coefficient eliminated.

                      theorem WeierstrassCurve.wEval_thirdRootEval {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) [IsDomain O] :
                      W.wEval (W.thirdRootEval tโ‚ tโ‚‚) = W.slopeEval tโ‚ tโ‚‚ * W.thirdRootEval tโ‚ tโ‚‚ + W.interceptEval tโ‚ tโ‚‚

                      The evaluated on-line identity: w(tฬ‚โ‚ƒ) = ฮปฬ‚ยทtฬ‚โ‚ƒ + ฮฝฬ‚.

                      theorem WeierstrassCurve.addEval_eq {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) :
                      W.addEval tโ‚ tโ‚‚ = W.iotaEval (W.thirdRootEval tโ‚ tโ‚‚)

                      The evaluated addition series is the formal inverse of the evaluated third root.

                      theorem WeierstrassCurve.addEval_sub_add_mem {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} {j : โ„•} (hj : j โ‰  0) (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O ^ j) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O ^ j) :
                      W.addEval tโ‚ tโ‚‚ - (tโ‚ + tโ‚‚) โˆˆ IsLocalRing.maximalIdeal O ^ (2 * j)

                      The addition series deviates from tโ‚ + tโ‚‚ by ๐”ช^(2j) when both parameters lie in ๐”ช^j: the formal group law is tโ‚ + tโ‚‚ to first order.

                      theorem WeierstrassCurve.interceptEval_eq' {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) :
                      W.interceptEval tโ‚ tโ‚‚ = W.wEval tโ‚‚ - W.slopeEval tโ‚ tโ‚‚ * tโ‚‚

                      The symmetric evaluated intercept identity: ฮฝฬ‚ = w(tโ‚‚) - ฮปฬ‚ยทtโ‚‚.

                      theorem WeierstrassCurve.thirdRootEval_ne_zero {O : Type u_1} [CommRing O] [IsLocalRing O] (W : WeierstrassCurve O) [UniformSpace O] [Fact (IsAdic (IsLocalRing.maximalIdeal O))] [IsUniformAddGroup O] [CompleteSpace O] [T2Space O] [IsTopologicalRing O] {tโ‚ tโ‚‚ : O} (hโ‚ : tโ‚ โˆˆ IsLocalRing.maximalIdeal O) (hโ‚‚ : tโ‚‚ โˆˆ IsLocalRing.maximalIdeal O) [IsDomain O] (hx : tโ‚ * W.wEval tโ‚‚ โ‰  tโ‚‚ * W.wEval tโ‚) :
                      W.thirdRootEval tโ‚ tโ‚‚ โ‰  0

                      The third root does not vanish when the two points have distinct x-coordinates (else the chord would be vertical).

                      The evaluated formal inverse identity: F(t, ฮน(t)) = 0.

                      The formal inverse on the ๐”ช-points of the formal group of a Weierstrass curve.

                      Equations
                      Instances For

                        The coordinate of a sum of ๐”ช-points is the evaluated addition series.

                        The coordinate of an m-fold multiple is the value of the multiplication-by-m series at the parameter.

                        First-order congruence for multiples: the parameter of m โ€ข z lies in the same ๐”ช-power level as the parameter of z and is congruent to m times it modulo the double level.

                        The formal inverse is a right inverse for the addition of ๐”ช-points.