Documentation

LeanPool.FLTEichlerShimura.Definitions.Def_WeierstrassCurve_EDSEngine

Elliptic divisibility sequences, universal Weierstrass curve, division polynomial ω #

Definition: WeierstrassCurve_EDSEngine (5fd20a59-e5e9-5133-a421-34f512baf1be), by Claude, 2026-09-05.

Four layers are set up here. (1) Sequence identities. For $W:\mathbb{Z}\to R$ over a commutative ring, EllSequence.addMulSub W m n $= W((m+n)\,\mathrm{tdiv}\,2)\cdot W((m-n)\,\mathrm{tdiv}\,2)$, and rel₄, rel₆, relFin4, net are the associated quadratic and quartic expressions, net W p q r s $= W(p+q+s)W(p-q)W(r+s)W(r)-W(p+r+s)W(p-r)W(q+s)W(q)+W(q+r+s)W(q-r)W(p+s)W(p)$; Rel₃ W m n r is the three‑term elliptic relation at $(m,n,r)$, so that IsEllipticSequence is equivalent to $\forall m,n,r$, Rel₃. OddRec/EvenRec are the doubling recursions $W(2m+1)W(1)^3=W(m+2)W(m)^3-W(m-1)W(m+1)^3$ and $W(2m)W(2)W(1)^2=W(m)(W(m-1)^2W(m+2)-W(m-2)W(m+1)^2)$; invarNum, invarDenom form the quotient shown to be independent of $n$. The combinatorial predicates HaveSameParity₄, StrictAnti₄ ($0\le d<c<b<a$), avg₄, dMin, cMin, Rel₄OfValid organise the descent from the two recursions to the full relation. (2) Complementary sequences: compl₂EDSAux and compl₂EDS built from preNormEDS (b^4) c d, with $\mathrm{normEDS}\cdot\mathrm{compl₂EDS}=\mathrm{normEDS}(2m)$; the recursion compl', its odd extension compl, and complEDS b c d m n with $\mathrm{normEDS}(m)\cdot\mathrm{complEDS}(m,n)=\mathrm{normEDS}(nm)$; redInvarNum, redInvarDenom (the latter by cases on $m \bmod 6$) satisfy $\mathrm{redInvarNum}=\mathrm{redInvarDenom}\cdot(d+b^4)$. Universality is obtained from Param, universalNormEDS = normEDS (X B) (X C) (X D), and the specialisation $(b,c,d)=(2,3,2)$ at which normEDS is the identity. (3) The universal curve: Coeff, Univ.curve over $\mathbb{Z}[A_1,A_2,A_3,A_4,A_6]$, its bivariate polynomial ring Poly, coordinate ring Univ.Ring, fraction field Univ.Field, the map polyToField, the generic affine and Jacobian points, the cusp $y^2=x^3$ with its point $(1,1)$, and the evaluation maps specialize, polyEval, ringEval. (4) Division polynomials: invar $=6X^2+b_2X+b_4$, ψc with $\psi_n\psi^c_n=\psi_{2n}$, and ωe $n$, characterised by $2\omega_n+a_1\phi_n\psi_n+a_3\psi_n^3=\psi^c_n$, with $\omega_0=1$, $\omega_1=Y$; then smulX, smulY, slopeOne give $\phi_n/\psi_n^2$, $\omega_n/\psi_n^3$ over Univ.Field.

Relation to Mathlib. Mathlib supplies normEDS, preNormEDS and the division polynomials $\psi_n$, $\phi_n$, $\Psi_3$, $\mathrm{pre}\Psi_4$; compl₂EDS agrees with Mathlib's complEDS₂. The sequence predicates are Mathlib's IsEllipticSequence, IsDvdSequence and IsEllipticDvdSequence, with divisibility indexed by integers. The complementary sequence complEDS, the polynomial ωe, the universal Weierstrass curve with its coordinate ring and function field, and the specialisation homomorphisms have no Mathlib counterpart here.

Where it is used. The formulas assembled here express multiplication by $n$ on a Weierstrass curve through $\phi_n$, $\omega_n$ and $\psi_n$, first for the generic point of the universal curve and then, by specialisation, over an arbitrary base. They serve the treatment of torsion points of elliptic curves needed for the Galois representations attached to the Frey curve.

<!-- Generated by add_prove2me_provenance.py -->

Notation for the affine point group after base change to the indicated coefficient ring.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def EllSequence.addMulSub {R : Type u} [CommRing R] (W : ℤ → R) (m n : ℤ) :
    R

    The product of sequence values at the half-sum and half-difference of the two indices.

    Equations
    Instances For
      def EllSequence.rel₄ {R : Type u} [CommRing R] (W : ℤ → R) (a b c d : ℤ) :
      R

      The three-term four-index Plücker expression formed from half-sum and half-difference products.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def EllSequence.net {R : Type u} [CommRing R] (W : ℤ → R) (p q r s : ℤ) :
        R

        The four-variable elliptic-net relation expression.

        Equations
        Instances For
          theorem EllSequence.net_eq_rel₄ {R : Type u} [CommRing R] {W : ℤ → R} {p q r s : ℤ} :
          net W p q r s = rel₄ W (2 * p + s) (2 * q + s) (2 * r + s) s
          def EllSequence.Rel₃ {R : Type u} [CommRing R] (W : ℤ → R) (m n r : ℤ) :

          The three-index elliptic-sequence addition relation.

          Equations
          Instances For
            theorem isEllSequence_iff_rel₃ {R : Type u} [CommRing R] (W : ℤ → R) :
            IsEllipticSequence W ↔ ∀ (m n r : ℤ), EllSequence.Rel₃ W m n r
            theorem IsEllipticSequence.rel₃ {R : Type u} [CommRing R] {W : ℤ → R} (h : IsEllipticSequence W) (m n r : ℤ) :
            W (m + n) * W (m - n) * W r ^ 2 = W (m + r) * W (m - r) * W n ^ 2 - W (n + r) * W (n - r) * W m ^ 2
            def EllSequence.invarNum {R : Type u} [CommRing R] (W : ℤ → R) (s n : ℤ) :
            R

            The numerator of the elliptic-sequence invariant associated to the two indices.

            Equations
            Instances For
              def EllSequence.invarDenom {R : Type u} [CommRing R] (W : ℤ → R) (s n : ℤ) :
              R

              The denominator of the elliptic-sequence invariant associated to the two indices.

              Equations
              Instances For
                theorem EllSequence.invar_of_net {R : Type u} [CommRing R] (W : ℤ → R) (net_eq_zero : ∀ (p q r s : ℤ), net W p q r s = 0) (s m n : ℤ) :
                invarNum W s m * invarDenom W s n = invarNum W s n * invarDenom W s m
                theorem EllSequence.net_add_sub_iff {R : Type u} [CommRing R] (W : ℤ → R) (m n : ℤ) :
                net W (m + n) m (m - n) n = 0 ↔ W (2 * (m + n)) * W (m - n) * W m * W n = (W (2 * m + n) * W (2 * n) * W m - W (m + 2 * n) * W (2 * m) * W n) * W (m + n)
                theorem EllSequence.addMulSub_two_zero {R : Type u} [CommRing R] (W : ℤ → R) :
                addMulSub W 2 0 = W 1 ^ 2
                theorem EllSequence.addMulSub_three_one {R : Type u} [CommRing R] (W : ℤ → R) :
                addMulSub W 3 1 = W 2 * W 1
                theorem EllSequence.addMulSub_even {R : Type u} [CommRing R] (W : ℤ → R) (m n : ℤ) :
                addMulSub W (2 * m) (2 * n) = W (m + n) * W (m - n)
                theorem EllSequence.addMulSub_odd {R : Type u} [CommRing R] (W : ℤ → R) (m n : ℤ) :
                addMulSub W (2 * m + 1) (2 * n + 1) = W (m + n + 1) * W (m - n)
                theorem EllSequence.addMulSub_same {R : Type u} [CommRing R] (W : ℤ → R) (zero : W 0 = 0) (m : ℤ) :
                addMulSub W m m = 0
                theorem EllSequence.addMulSub_neg₀ {R : Type u} [CommRing R] (W : ℤ → R) (neg : ∀ (k : ℤ), W (-k) = -W k) (m n : ℤ) :
                addMulSub W (-m) n = addMulSub W m n
                theorem EllSequence.addMulSub_neg₁ {R : Type u} [CommRing R] (W : ℤ → R) (m n : ℤ) :
                addMulSub W m (-n) = addMulSub W m n
                theorem EllSequence.addMulSub_abs₀ {R : Type u} [CommRing R] (W : ℤ → R) (neg : ∀ (k : ℤ), W (-k) = -W k) (m n : ℤ) :
                addMulSub W |m| n = addMulSub W m n
                theorem EllSequence.addMulSub_abs₁ {R : Type u} [CommRing R] (W : ℤ → R) (m n : ℤ) :
                addMulSub W m |n| = addMulSub W m n
                theorem EllSequence.addMulSub_swap {R : Type u} [CommRing R] (W : ℤ → R) (neg : ∀ (k : ℤ), W (-k) = -W k) (m n : ℤ) :
                addMulSub W m n = -addMulSub W n m

                The four indices are strictly decreasing and the last is nonnegative.

                Equations
                Instances For

                  The four indices have the same parity, expressed through powers of -1.

                  Equations
                  Instances For
                    def EllSequence.avg₄ (a b c d : ℤ) :

                    Half the sum of the four indices, using integer division.

                    Equations
                    Instances For
                      theorem EllSequence.HaveSameParity₄.rel₄_eq_net {R : Type u} [CommRing R] {W : ℤ → R} {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                      rel₄ W a b c d = net W ((a - d) / 2) ((b - d) / 2) ((c - d) / 2) d
                      theorem EllSequence.HaveSameParity₄.even_sum {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                      Even (a + b + c + d)
                      theorem EllSequence.HaveSameParity₄.avg₄_add_avg₄ {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                      avg₄ a b c d + avg₄ a b c d = a + b + c + d
                      theorem EllSequence.HaveSameParity₄.perm (σ : Equiv.Perm (Fin 4)) (t : Fin 4 → ℤ) :
                      HaveSameParity₄ (t 0) (t 1) (t 2) (t 3) → HaveSameParity₄ (t (σ 0)) (t (σ 1)) (t (σ 2)) (t (σ 3))
                      def EllSequence.HaveSameParity₄.addMulSub₄ {R : Type u} [CommRing R] (W : ℤ → R) (a b c d : ℤ) :
                      R

                      The product of sequence values at the half-sum of the first pair and half-difference of the second pair.

                      Equations
                      Instances For
                        theorem EllSequence.HaveSameParity₄.addMulSub₄_mul_addMulSub₄ {R : Type u} [CommRing R] {W : ℤ → R} {a b c d : ℤ} :
                        addMulSub₄ W a b c d * addMulSub₄ W c d a b = addMulSub W a b * addMulSub W c d
                        theorem EllSequence.HaveSameParity₄.addMulSub_transf {R : Type u} [CommRing R] {W : ℤ → R} {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                        addMulSub W (avg₄ a b c d - d) (avg₄ a b c d - c) = addMulSub₄ W a b c d ∧ addMulSub W (avg₄ a b c d - d) (avg₄ a b c d - b) = addMulSub₄ W a c b d ∧ addMulSub W (avg₄ a b c d - d) |avg₄ a b c d - a| = addMulSub₄ W b c a d ∧ addMulSub W (avg₄ a b c d - c) (avg₄ a b c d - b) = addMulSub₄ W a d b c ∧ addMulSub W (avg₄ a b c d - c) |avg₄ a b c d - a| = addMulSub₄ W b d a c ∧ addMulSub W (avg₄ a b c d - b) |avg₄ a b c d - a| = addMulSub₄ W c d a b
                        theorem EllSequence.HaveSameParity₄.rel₄_transf {R : Type u} [CommRing R] {W : ℤ → R} {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                        rel₄ W (avg₄ a b c d - d) (avg₄ a b c d - c) (avg₄ a b c d - b) |avg₄ a b c d - a| = rel₄ W a b c d
                        theorem EllSequence.HaveSameParity₄.transf {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                        HaveSameParity₄ (avg₄ a b c d - d) (avg₄ a b c d - c) (avg₄ a b c d - b) |avg₄ a b c d - a|
                        theorem EllSequence.HaveSameParity₄.strictAnti₄_transf {a b c d : ℤ} (same : HaveSameParity₄ a b c d) (anti : StrictAnti₄ a b c d) :
                        StrictAnti₄ (avg₄ a b c d - d) (avg₄ a b c d - c) (avg₄ a b c d - b) |avg₄ a b c d - a|
                        def EllSequence.rel₆ {R : Type u} [CommRing R] (W : ℤ → R) (k l a b c d : ℤ) :
                        R

                        The four-index relation multiplied by a further half-sum and half-difference product.

                        Equations
                        Instances For
                          theorem EllSequence.rel₃_iff₄ {R : Type u} [CommRing R] (W : ℤ → R) (m n r : ℤ) :
                          Rel₃ W m n r ↔ rel₄ W (2 * m) (2 * n) (2 * r) 0 = 0
                          theorem EllSequence.rel₆_eq₃ {R : Type u} [CommRing R] (W : ℤ → R) (c d m n r : ℤ) :
                          rel₆ W c d m n r c = rel₆ W m c n r c d - rel₆ W n c m r c d + rel₆ W r c m n c d
                          theorem EllSequence.rel₆_eq₃' {R : Type u} [CommRing R] (W : ℤ → R) (c d m n r : ℤ) :
                          rel₆ W c d m n r d = rel₆ W m d n r c d - rel₆ W n d m r c d + rel₆ W r d m n c d
                          theorem EllSequence.rel₆_eq₁₀ {R : Type u} [CommRing R] (W : ℤ → R) (c d m n r s : ℤ) :
                          rel₆ W c d m n r s = rel₆ W n d m r s c - rel₆ W r d m n s c + rel₆ W s d m n r c + rel₆ W n c m r s d - rel₆ W r c m n s d + rel₆ W s c m n r d + rel₆ W n r m s c d - rel₆ W n s m r c d + rel₆ W r s m n c d - 2 * rel₆ W m d n r s c
                          theorem EllSequence.addMulSub_sq_mul_rel₄_eq₉ {R : Type u} [CommRing R] (W : ℤ → R) (c d m n r s : ℤ) :
                          addMulSub W c d ^ 2 * rel₄ W m n r s = addMulSub W m c * (rel₆ W n d r s c d - rel₆ W r d n s c d + rel₆ W s d n r c d) - addMulSub W m d * (rel₆ W n c r s c d - rel₆ W r c n s c d + rel₆ W s c n r c d) + addMulSub W c d * (rel₆ W n r m s c d - rel₆ W n s m r c d + rel₆ W r s m n c d)
                          def EllSequence.OddRec {R : Type u} [CommRing R] (W : ℤ → R) (m : ℤ) :

                          The odd-index doubling recurrence for an elliptic sequence.

                          Equations
                          Instances For
                            def EllSequence.EvenRec {R : Type u} [CommRing R] (W : ℤ → R) (m : ℤ) :

                            The even-index doubling recurrence for an elliptic sequence.

                            Equations
                            Instances For
                              theorem EllSequence.rel₃_iff_oddRec {R : Type u} [CommRing R] (W : ℤ → R) (m : ℤ) :
                              Rel₃ W (m + 1) m 1 ↔ OddRec W m
                              theorem EllSequence.rel₃_iff_evenRec {R : Type u} [CommRing R] (W : ℤ → R) (m : ℤ) :
                              Rel₃ W (m + 1) (m - 1) 1 ↔ EvenRec W m
                              theorem EllSequence.rel₄_iff_evenRec {R : Type u} [CommRing R] (W : ℤ → R) (m : ℤ) :
                              rel₄ W (2 * m + 1) (2 * m - 1) 3 1 = 0 ↔ EvenRec W m

                              The least nonnegative index of the same parity as the given index.

                              Equations
                              Instances For

                                The next nonnegative index of the same parity after dMin.

                                Equations
                                Instances For
                                  theorem EllSequence.addMulSub_mem_nonZeroDivisors {R : Type u} [CommRing R] {W : ℤ → R} (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (a : ℤ) :
                                  theorem EllSequence.dMin_le {a b : ℤ} (same : a.negOnePow = b.negOnePow) (h : 0 ≤ b) :
                                  dMin a ≤ b
                                  def EllSequence.Rel₄OfValid {R : Type u} [CommRing R] (W : ℤ → R) (a b c d : ℤ) :

                                  The four-index relation vanishes for strictly decreasing nonnegative indices of the same parity.

                                  Equations
                                  Instances For
                                    theorem EllSequence.rel₄_fix₁_of_fix₂ {R : Type u} [CommRing R] {W : ℤ → R} {a c₀ d₀ : ℤ} (par : c₀.negOnePow = d₀.negOnePow) (le : 0 ≤ d₀) (lt : d₀ < c₀) (rel : ∀ {a' b : ℤ}, a' ≤ a → Rel₄OfValid W a' b c₀ d₀) (mem : addMulSub W c₀ d₀ ∈ nonZeroDivisors R) (b c : ℤ) :
                                    Rel₄OfValid W a b c c₀ ∧ (c₀ < c → Rel₄OfValid W a b c d₀)
                                    theorem EllSequence.rel₄_of_fix₂ {R : Type u} [CommRing R] {W : ℤ → R} {a c₀ d₀ : ℤ} (par : c₀.negOnePow = d₀.negOnePow) (le : 0 ≤ d₀) (lt : d₀ < c₀) (rel : ∀ {a' b : ℤ}, a' ≤ a → Rel₄OfValid W a' b c₀ d₀) (mem : addMulSub W c₀ d₀ ∈ nonZeroDivisors R) (b c d : ℤ) (hc : c₀ < d) (par' : d.negOnePow = d₀.negOnePow) :
                                    Rel₄OfValid W a b c d
                                    theorem EllSequence.rel₄_of_min₂ {R : Type u} [CommRing R] {W : ℤ → R} {a : ℤ} (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (rel : ∀ {a' b : ℤ}, a' ≤ a → Rel₄OfValid W a' b (cMin a) (dMin a)) (b c d : ℤ) :
                                    Rel₄OfValid W a b c d
                                    theorem EllSequence.rel₄_of_anti_oddRec_evenRec {R : Type u} [CommRing R] {W : ℤ → R} (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (oddRec : ∀ m ≥ 2, OddRec W m) (evenRec : ∀ m ≥ 3, EvenRec W m) ⦃a b c d : ℤ⦄ :
                                    Rel₄OfValid W a b c d
                                    theorem EllSequence.rel₄_abs {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) {m n r s : ℤ} :
                                    rel₄ W |m| |n| |r| |s| = rel₄ W m n r s
                                    theorem EllSequence.rel₄_swap₀₁ {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) {m n r s : ℤ} :
                                    rel₄ W m n r s = -rel₄ W n m r s
                                    theorem EllSequence.rel₄_swap₁₂ {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) {m n r s : ℤ} :
                                    rel₄ W m n r s = -rel₄ W m r n s
                                    theorem EllSequence.rel₄_swap₂₃ {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) {m n r s : ℤ} :
                                    rel₄ W m n r s = -rel₄ W m n s r
                                    def EllSequence.relFin4 {R : Type u} [CommRing R] (W : ℤ → R) (t : Fin 4 → ℤ) :
                                    R

                                    The four-index relation with its arguments packaged as a function on Fin 4.

                                    Equations
                                    Instances For
                                      theorem EllSequence.relFin4_perm {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) (σ : Equiv.Perm (Fin 4)) (t : Fin 4 → ℤ) :
                                      relFin4 W (t ∘ ⇑σ) = Equiv.Perm.sign σ • relFin4 W t
                                      theorem EllSequence.relFin4_perm' {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) (σ : Equiv.Perm (Fin 4)) (t : Fin 4 → ℤ) :
                                      Equiv.Perm.sign σ • relFin4 W (t ∘ ⇑σ) = relFin4 W t
                                      theorem EllSequence.rel₄_same₀₁ {R : Type u} [CommRing R] {W : ℤ → R} (zero : W 0 = 0) (m r s : ℤ) :
                                      rel₄ W m m r s = 0
                                      theorem EllSequence.rel₄_same₁₂ {R : Type u} [CommRing R] {W : ℤ → R} (zero : W 0 = 0) (m n s : ℤ) :
                                      rel₄ W m n n s = 0
                                      theorem EllSequence.rel₄_same₂₃ {R : Type u} [CommRing R] {W : ℤ → R} (zero : W 0 = 0) (m n r : ℤ) :
                                      rel₄ W m n r r = 0
                                      theorem EllSequence.rel₄_of_oddRec_evenRec {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) (zero : W 0 = 0) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (oddRec : ∀ m ≥ 2, OddRec W m) (evenRec : ∀ m ≥ 3, EvenRec W m) {a b c d : ℤ} (same : HaveSameParity₄ a b c d) :
                                      rel₄ W a b c d = 0
                                      theorem IsEllipticSequence.of_oddRec_evenRec {R : Type u} [CommRing R] {W : ℤ → R} (neg : ∀ (k : ℤ), W (-k) = -W k) (zero : W 0 = 0) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (oddRec : ∀ m ≥ 2, EllSequence.OddRec W m) (evenRec : ∀ m ≥ 3, EllSequence.EvenRec W m) :
                                      theorem IsEllipticSequence.oddRec {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (m : ℤ) :
                                      theorem IsEllipticSequence.evenRec {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (m : ℤ) :
                                      theorem IsEllipticSequence.zero' {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) [IsReduced R] :
                                      W 0 = 0
                                      theorem IsEllipticSequence.zero {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (m : ℤ) (mem : W (2 * m) ∈ nonZeroDivisors R) :
                                      W 0 = 0
                                      theorem IsEllipticSequence.sub_add_neg_sub_mul_eq_zero {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (m n r : ℤ) :
                                      (W (m - n) + W (-(m - n))) * W (m + n) * W r ^ 2 = 0
                                      theorem IsEllipticSequence.neg {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (m : ℤ) :
                                      W (-m) = -W m
                                      theorem IsEllipticSequence.rel₄ {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) {a b c d : ℤ} (same : EllSequence.HaveSameParity₄ a b c d) :
                                      EllSequence.rel₄ W a b c d = 0
                                      theorem IsEllipticSequence.net {R : Type u} [CommRing R] {W : ℤ → R} (ell : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (p q r s : ℤ) :
                                      EllSequence.net W p q r s = 0
                                      theorem invarNum_normEDS {R : Type u} [CommRing R] (b c d : R) (n : ℤ) :
                                      EllSequence.invarNum (normEDS b c d) 1 n = normEDS b c d (n + 2) * normEDS b c d (n - 1) ^ 2 + normEDS b c d (n + 1) ^ 2 * normEDS b c d (n - 2) + normEDS b c d n ^ 3 * b ^ 2
                                      theorem invarNum_normEDS_two {R : Type u} [CommRing R] (b c d : R) :
                                      EllSequence.invarNum (normEDS b c d) 1 2 = (d + b ^ 4) * b
                                      theorem invarDenom_normEDS_two {R : Type u} [CommRing R] (b c d : R) :
                                      def compl₂EDSAux {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                      R

                                      An auxiliary division-polynomial expression used to define the complementary doubling sequence without division.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem compl₂EDSAux_zero {R : Type u} [CommRing R] (b c d : R) :
                                        compl₂EDSAux b c d 0 = -1
                                        @[simp]
                                        theorem compl₂EDSAux_one {R : Type u} [CommRing R] (b c d : R) :
                                        compl₂EDSAux b c d 1 = -b
                                        @[simp]
                                        theorem compl₂EDSAux_neg_one {R : Type u} [CommRing R] (b c d : R) :
                                        compl₂EDSAux b c d (-1) = 0
                                        @[simp]
                                        theorem compl₂EDSAux_two {R : Type u} [CommRing R] (b c d : R) :
                                        compl₂EDSAux b c d 2 = 0
                                        @[simp]
                                        theorem compl₂EDSAux_neg_two {R : Type u} [CommRing R] (b c d : R) :
                                        compl₂EDSAux b c d (-2) = -d
                                        theorem compl₂EDSAux_mul_b {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                        compl₂EDSAux b c d m * b = normEDS b c d (m - 2) * normEDS b c d (m + 1) ^ 2
                                        def compl₂EDS {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                        R

                                        The complementary doubling sequence whose product with the normalized elliptic sequence gives its doubled-index values.

                                        Equations
                                        Instances For
                                          theorem compl₂EDSAux_neg {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                          compl₂EDSAux b c d (-m) = -compl₂EDS b c d m - compl₂EDSAux b c d m
                                          @[simp]
                                          theorem compl₂EDS_zero {R : Type u} [CommRing R] (b c d : R) :
                                          compl₂EDS b c d 0 = 2
                                          @[simp]
                                          theorem compl₂EDS_one {R : Type u} [CommRing R] (b c d : R) :
                                          compl₂EDS b c d 1 = b
                                          @[simp]
                                          theorem compl₂EDS_two {R : Type u} [CommRing R] (b c d : R) :
                                          compl₂EDS b c d 2 = d
                                          @[simp]
                                          theorem compl₂EDS_neg {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                          compl₂EDS b c d (-m) = compl₂EDS b c d m
                                          theorem normEDS_mul_compl₂EDS {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                          normEDS b c d m * compl₂EDS b c d m = normEDS b c d (2 * m)
                                          theorem normEDS_dvd_two_mul {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                          normEDS b c d m ∣ normEDS b c d (2 * m)
                                          theorem compl₂EDS_mul_b {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                          compl₂EDS b c d m * b = normEDS b c d (m - 1) ^ 2 * normEDS b c d (m + 2) - normEDS b c d (m - 2) * normEDS b c d (m + 1) ^ 2
                                          theorem normEDS_six_eq_mul {R : Type u} [CommRing R] (b c d : R) :
                                          normEDS b c d 6 = (normEDS b c d 5 - d ^ 2) * b * c
                                          @[irreducible]
                                          def EllSequence.compl' {R : Type u} [CommRing R] (W₁ compl₂ : ℤ → R) (m : ℤ) :
                                          ℕ → R

                                          The recursively defined complementary sequence on natural indices for a fixed base index.

                                          Equations
                                          Instances For
                                            def EllSequence.compl {R : Type u} [CommRing R] (W₁ compl₂ : ℤ → R) (m n : ℤ) :
                                            R

                                            The odd extension to integer indices of the complementary sequence.

                                            Equations
                                            Instances For
                                              theorem EllSequence.compl_ofNat {R : Type u} [CommRing R] (W₁ compl₂ : ℤ → R) (m : ℤ) (n : ℕ) :
                                              compl W₁ compl₂ m ↑n = compl' W₁ compl₂ m n
                                              theorem EllSequence.compl_neg {R : Type u} [CommRing R] (W₁ compl₂ : ℤ → R) (m n : ℤ) :
                                              compl W₁ compl₂ m (-n) = -compl W₁ compl₂ m n
                                              def EllSequence.complEDS {R : Type u} [CommRing R] (b c d : R) (m n : ℤ) :
                                              R

                                              The complementary sequence for normalized elliptic divisibility sequences, multiplying the base-index value to the product-index value.

                                              Equations
                                              Instances For
                                                theorem map_compl₂EDS {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) {b c d : R} (n : ℤ) :
                                                f (compl₂EDS b c d n) = compl₂EDS (f b) (f c) (f d) n
                                                theorem EllSequence.map_compl' {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (W₁ compl₂ : ℤ → R) (m : ℤ) (n : ℕ) :
                                                f (compl' W₁ compl₂ m n) = compl' (⇑f ∘ W₁) (⇑f ∘ compl₂) m n
                                                theorem EllSequence.map_compl {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (W₁ compl₂ : ℤ → R) (m n : ℤ) :
                                                f (compl W₁ compl₂ m n) = compl (⇑f ∘ W₁) (⇑f ∘ compl₂) m n
                                                theorem EllSequence.map_complEDS {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) {b c d : R} (m n : ℤ) :
                                                f (complEDS b c d m n) = complEDS (f b) (f c) (f d) m n
                                                theorem map_addMulSub {R : Type u} {S : Type v} [CommRing R] [CommRing S] {W : ℤ → R} {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (m n : ℤ) :
                                                theorem map_rel₄ {R : Type u} {S : Type v} [CommRing R] [CommRing S] {W : ℤ → R} {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (p q r s : ℤ) :
                                                f (EllSequence.rel₄ W p q r s) = EllSequence.rel₄ (⇑f ∘ W) p q r s
                                                theorem map_net {R : Type u} {S : Type v} [CommRing R] [CommRing S] {W : ℤ → R} {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (p q r s : ℤ) :
                                                f (EllSequence.net W p q r s) = EllSequence.net (⇑f ∘ W) p q r s
                                                theorem map_invarNum {R : Type u} {S : Type v} [CommRing R] [CommRing S] {W : ℤ → R} {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (s m : ℤ) :
                                                theorem map_invarDenom {R : Type u} {S : Type v} [CommRing R] [CommRing S] {W : ℤ → R} {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (s m : ℤ) :
                                                inductive Param :

                                                The three indeterminates parametrizing the universal normalized elliptic divisibility sequence.

                                                Instances For
                                                  noncomputable def universalNormEDS :

                                                  The normalized elliptic divisibility sequence over the integer polynomial ring in the three parameters.

                                                  Equations
                                                  Instances For
                                                    theorem normEDS_eq_aeval {R : Type u} [CommRing R] {b c d : R} :
                                                    normEDS b c d = fun (x : ℤ) => (MvPolynomial.aeval fun (t : Param) => Param.rec b c d t) (universalNormEDS x)
                                                    theorem IsEllipticSequence.ext {R : Type u} [CommRing R] {W U : ℤ → R} (ellW : IsEllipticSequence W) (ellU : IsEllipticSequence U) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (h1 : W 1 = U 1) (h2 : W 2 = U 2) (h3 : W 3 = U 3) (h4 : W 4 = U 4) :
                                                    W = U
                                                    theorem IsEllipticSequence.eq_normEDS_of_dvd {R : Type u} [CommRing R] {W : ℤ → R} (ellW : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (dvd₁₂ : W 1 ∣ W 2) (dvd₁₃ : W 1 ∣ W 3) (dvd₂₄ : W 2 ∣ W 4) :
                                                    ∃ (b : R) (c : R) (d : R), W = fun (x : ℤ) => W 1 * normEDS b c d x
                                                    theorem IsEllipticDvdSequence.eq_normEDS {R : Type u} [CommRing R] {W : ℤ → R} (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (h : IsEllipticDvdSequence W) :
                                                    ∃ (b : R) (c : R) (d : R), W = fun (x : ℤ) => W 1 * normEDS b c d x
                                                    theorem IsEllipticSequence.mul_compl_eq_apply_mul_of_mem_nonZeroDivisors {R : Type u} [CommRing R] {W : ℤ → R} (ellW : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (W₁ compl₂ : ℤ → R) (h₁ : ∀ (m : ℤ), W 1 * W₁ m = W m) (h₂ : ∀ (m : ℤ), W m * compl₂ m = W (2 * m)) (m n : ℤ) (mem : W m ∈ nonZeroDivisors R) :
                                                    W m * EllSequence.compl W₁ compl₂ m n = W (n * m)
                                                    theorem normEDS_mul_complEDS {R : Type u} [CommRing R] {b c d : R} (m n : ℤ) :
                                                    normEDS b c d m * EllSequence.complEDS b c d m n = normEDS b c d (n * m)
                                                    theorem normEDS_mul_complEDS_div {R : Type u} [CommRing R] {b c d : R} (m : ℤ) (hm : m ≠ 0) (n : ℤ) (dvd : m ∣ n) :
                                                    normEDS b c d m * EllSequence.complEDS b c d m (n / m) = normEDS b c d n
                                                    def EllSequence.redInvarNum {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                                    R

                                                    The reduced numerator obtained by removing the universal factor from the invariant numerator at first index one.

                                                    Equations
                                                    Instances For
                                                      theorem EllSequence.compl₂EDS_eq_redInvarNum_sub {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                                      compl₂EDS b c d m = redInvarNum b c d m - normEDS b c d m ^ 3 * b - 2 * compl₂EDSAux b c d m
                                                      theorem EllSequence.invarNum_eq_redInvarNum_mul {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                                      invarNum (normEDS b c d) 1 m = redInvarNum b c d m * b
                                                      def EllSequence.redInvarDenom {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                                      R

                                                      The reduced denominator obtained by removing the universal factors from the invariant denominator at first index one.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        theorem EllSequence.invarDenom_eq_redInvarDenom_mul {R : Type u} [CommRing R] (b c d : R) (m : ℤ) :
                                                        invarDenom (normEDS b c d) 1 m = redInvarDenom b c d m * b * c
                                                        @[simp]
                                                        theorem EllSequence.redInvarDenom_zero {R : Type u} [CommRing R] (b c d : R) :
                                                        redInvarDenom b c d 0 = 0
                                                        @[simp]
                                                        theorem EllSequence.redInvarDenom_one {R : Type u} [CommRing R] (b c d : R) :
                                                        redInvarDenom b c d 1 = 0
                                                        @[simp]
                                                        theorem EllSequence.redInvarDenom_two {R : Type u} [CommRing R] (b c d : R) :
                                                        redInvarDenom b c d 2 = 1
                                                        theorem EllSequence.map_compl₂EDSAux {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (b c d : R) (m : ℤ) :
                                                        f (compl₂EDSAux b c d m) = compl₂EDSAux (f b) (f c) (f d) m
                                                        theorem EllSequence.map_redInvarNum {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (b c d : R) (m : ℤ) :
                                                        f (redInvarNum b c d m) = redInvarNum (f b) (f c) (f d) m
                                                        theorem EllSequence.map_redInvarDenom {R : Type u} {S : Type v} [CommRing R] [CommRing S] {F : Type u_1} [FunLike F R S] [RingHomClass F R S] (f : F) (b c d : R) (m : ℤ) :
                                                        f (redInvarDenom b c d m) = redInvarDenom (f b) (f c) (f d) m
                                                        theorem IsDvdSequence.normEDS {R : Type u} [CommRing R] {b c d : R} :
                                                        theorem IsEllipticSequence.isDivSequence_of_dvd {R : Type u} [CommRing R] {W : ℤ → R} (ellW : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (dvd₁₂ : W 1 ∣ W 2) (dvd₁₃ : W 1 ∣ W 3) (dvd₂₄ : W 2 ∣ W 4) :
                                                        theorem IsEllipticSequence.isEllDivSequence_of_dvd {R : Type u} [CommRing R] {W : ℤ → R} (ellW : IsEllipticSequence W) (one : W 1 ∈ nonZeroDivisors R) (two : W 2 ∈ nonZeroDivisors R) (dvd₁₂ : W 1 ∣ W 2) (dvd₁₃ : W 1 ∣ W 3) (dvd₂₄ : W 2 ∣ W 4) :
                                                        theorem net_normEDS {R : Type u} [CommRing R] {b c d : R} (p q r s : ℤ) :
                                                        EllSequence.net (normEDS b c d) p q r s = 0
                                                        theorem rel₄_normEDS {R : Type u} [CommRing R] {b c d : R} (p q r s : ℤ) (same : EllSequence.HaveSameParity₄ p q r s) :
                                                        EllSequence.rel₄ (normEDS b c d) p q r s = 0
                                                        theorem invar_normEDS {R : Type u} [CommRing R] {b c d : R} (s m n : ℤ) :
                                                        theorem invar₂_normEDS {R : Type u} [CommRing R] {b c d : R} {m : ℤ} :
                                                        EllSequence.invarNum (normEDS b c d) 1 m * c = EllSequence.invarDenom (normEDS b c d) 1 m * (d + b ^ 4)
                                                        theorem redInvar_normEDS {R : Type u} [CommRing R] {b c d : R} (m : ℤ) :

                                                        The five coefficient labels for a Weierstrass equation.

                                                        Instances For

                                                          The universal Weierstrass curve over the integer polynomial ring in its five coefficients.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            @[reducible, inline]

                                                            The bivariate polynomial ring for affine coordinates of the universal curve.

                                                            Equations
                                                            Instances For
                                                              @[reducible, inline]

                                                              The coordinate ring of the universal Weierstrass curve.

                                                              Equations
                                                              Instances For
                                                                @[reducible, inline]

                                                                The fraction field of the universal curve's coordinate ring.

                                                                Equations
                                                                Instances For
                                                                  @[reducible, inline]

                                                                  The universal curve base-changed to its own function field.

                                                                  Equations
                                                                  Instances For

                                                                    The generic affine point of the universal curve over its function field.

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      @[reducible, inline]

                                                                      The universal curve base-changed to the coordinate polynomial ring.

                                                                      Equations
                                                                      Instances For
                                                                        @[reducible, inline]

                                                                        The universal curve base-changed to its coordinate ring.

                                                                        Equations
                                                                        Instances For
                                                                          @[reducible, inline]

                                                                          The universal curve base-changed to its function field.

                                                                          Equations
                                                                          Instances For

                                                                            The cuspidal Weierstrass equation y² = x³ over the integers.

                                                                            Equations
                                                                            Instances For

                                                                              Evaluate the five universal coefficient variables at the coefficients of the given curve.

                                                                              Equations
                                                                              Instances For
                                                                                noncomputable def WeierstrassCurve.Univ.polyEval {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (x y : R) :

                                                                                Evaluate the universal coefficient and coordinate variables at the given curve and coordinates.

                                                                                Equations
                                                                                Instances For
                                                                                  noncomputable def WeierstrassCurve.Univ.ringEval {R : Type u_1} [CommRing R] {W : WeierstrassCurve R} {x y : R} (eqn : Affine.Equation W x y) :

                                                                                  Evaluate the universal coordinate ring at a point satisfying the given curve equation.

                                                                                  Equations
                                                                                  Instances For
                                                                                    theorem WeierstrassCurve.Univ.ringEval_mk {R : Type u_1} [CommRing R] {W : WeierstrassCurve R} {x y : R} (eqn : Affine.Equation W x y) (p : Poly) :
                                                                                    noncomputable def WeierstrassCurve.invar {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) :

                                                                                    The polynomial 6X² + b₂X + b₄ used in the division-sequence invariant.

                                                                                    Equations
                                                                                    Instances For
                                                                                      noncomputable def WeierstrassCurve.ψc {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) :

                                                                                      The complementary division polynomial whose product with ψₙ is ψ₂ₙ.

                                                                                      Equations
                                                                                      Instances For
                                                                                        noncomputable def WeierstrassCurve.ωe {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (n : ℤ) :

                                                                                        The polynomial numerator for the y-coordinate of multiplication by an integer.

                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          theorem WeierstrassCurve.ωe_spec {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (n : ℤ) :
                                                                                          2 * W.ωe n + Polynomial.CC W.a₁ * W.φ n * W.ψ n + Polynomial.CC W.a₃ * W.ψ n ^ 3 = W.ψc n
                                                                                          theorem WeierstrassCurve.two_mul_ωe {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (n : ℤ) :
                                                                                          2 * W.ωe n = W.ψc n - Polynomial.CC W.a₁ * W.φ n * W.ψ n - Polynomial.CC W.a₃ * W.ψ n ^ 3
                                                                                          theorem WeierstrassCurve.ψc_spec {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (n : ℤ) :
                                                                                          W.ψ n * W.ψc n = W.ψ (2 * n)
                                                                                          @[simp]
                                                                                          theorem WeierstrassCurve.ωe_zero {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) :
                                                                                          W.ωe 0 = 1
                                                                                          @[simp]
                                                                                          theorem WeierstrassCurve.ψc_neg {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (n : ℤ) :
                                                                                          W.ψc (-n) = W.ψc n
                                                                                          theorem WeierstrassCurve.map_ψc {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ) :
                                                                                          theorem WeierstrassCurve.map_invar {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) :
                                                                                          theorem WeierstrassCurve.map_ωe {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (W : WeierstrassCurve R) (f : R →+* S) (n : ℤ) :
                                                                                          @[reducible, inline]
                                                                                          noncomputable abbrev WeierstrassCurve.Univ.ψᵤ (n : ℤ) :

                                                                                          The division sequence of the universal curve viewed in its function field.

                                                                                          Equations
                                                                                          Instances For

                                                                                            The candidate multiplication-map x-coordinate φₙ / ψₙ² at the generic point.

                                                                                            Equations
                                                                                            Instances For

                                                                                              The candidate multiplication-map y-coordinate ωₙ / ψₙ³ at the generic point.

                                                                                              Equations
                                                                                              Instances For
                                                                                                theorem WeierstrassCurve.Univ.Affine.smulX_eq {n : ℤ} (hn : n ≠ 0) :
                                                                                                smulX n = smulX 1 - ψᵤ (n + 1) * ψᵤ (n - 1) / ψᵤ n ^ 2
                                                                                                theorem WeierstrassCurve.Univ.Affine.smulX_sub_smulX {m n : ℤ} (hm : m ≠ 0) (hn : n ≠ 0) :
                                                                                                smulX m - smulX n = ψᵤ (n + m) * ψᵤ (n - m) / (ψᵤ n * ψᵤ m) ^ 2
                                                                                                theorem WeierstrassCurve.Univ.Affine.smulX_sub_sub_smulX_add {m n : ℤ} (add_ne : n + m ≠ 0) (sub_ne : n - m ≠ 0) :
                                                                                                smulX (n - m) - smulX (n + m) = ψᵤ (2 * n) * ψᵤ (2 * m) / (ψᵤ (n + m) * ψᵤ (n - m)) ^ 2
                                                                                                theorem WeierstrassCurve.Univ.Affine.smulX_ne_smulX {m n : ℤ} (ne : m ≠ n) (ne_neg : m ≠ -n) :

                                                                                                The tangent slope at the generic point of the universal curve.

                                                                                                Equations
                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                Instances For
                                                                                                  theorem WeierstrassCurve.Univ.Affine.smulX_add {m n : ℤ} (hm : m ≠ 0) (hn : n ≠ 0) (add_ne : n + m ≠ 0) (sub_ne : n - m ≠ 0) :
                                                                                                  have ψ₂ := fun (x y : Univ.Field) => y - pointedCurve.toAffine.negY x y; smulX (n + m) = smulX (n - m) - ψ₂ (smulX n) (smulY n) * ψ₂ (smulX m) (smulY m) / (smulX m - smulX n) ^ 2
                                                                                                  theorem WeierstrassCurve.Univ.Affine.smulY_add_sub_negY {m n : ℤ} (hm : m ≠ 0) (hn : n ≠ 0) (add_ne : n + m ≠ 0) (sub_ne : n - m ≠ 0) :
                                                                                                  have ψ₂ := fun (x y : Univ.Field) => y - pointedCurve.toAffine.negY x y; ψ₂ (smulX (n + m)) (smulY (n + m)) = (ψ₂ (smulX m) (smulY m) * (smulX n - smulX (n + m)) - ψ₂ (smulX n) (smulY n) * (smulX m - smulX (n + m))) / (smulX m - smulX n)
                                                                                                  @[reducible, inline]
                                                                                                  noncomputable abbrev WeierstrassCurve.Univ.Jacobian.smulPoly (n : ℤ) :
                                                                                                  Fin 3 → Poly

                                                                                                  The coordinate-polynomial triple [φₙ, ωₙ, ψₙ] for multiplication by an integer.

                                                                                                  Equations
                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                  Instances For
                                                                                                    @[reducible, inline]
                                                                                                    noncomputable abbrev WeierstrassCurve.Univ.Jacobian.smulRing (n : ℤ) :

                                                                                                    The multiplication-coordinate triple mapped to the universal coordinate ring.

                                                                                                    Equations
                                                                                                    Instances For
                                                                                                      @[reducible, inline]

                                                                                                      The multiplication-coordinate triple mapped to the universal function field.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        @[reducible, inline]
                                                                                                        noncomputable abbrev WeierstrassCurve.smulEval {R : Type u_1} [CommRing R] (W : WeierstrassCurve R) (x y : R) (n : ℤ) :
                                                                                                        Fin 3 → R

                                                                                                        Evaluate the multiplication-coordinate triple at the given affine coordinates.

                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          theorem WeierstrassCurve.dblXYZ_smulEval {R : Type u_1} [CommRing R] {W : WeierstrassCurve R} {x y : R} (eqn : W.toAffine.Equation x y) (n : ℤ) :
                                                                                                          Jacobian.dblXYZ W (W.smulEval x y n) = W.smulEval x y (2 * n)
                                                                                                          theorem WeierstrassCurve.addXYZ_smulEval {R : Type u_1} [CommRing R] {W : WeierstrassCurve R} {x y : R} (eqn : W.toAffine.Equation x y) (m n : ℤ) :
                                                                                                          Jacobian.addXYZ W (W.smulEval x y m) (W.smulEval x y n) = Polynomial.evalEval x y (W.ψ (n - m)) • W.smulEval x y (n + m)
                                                                                                          theorem WeierstrassCurve.addXYZ_smulEval₁ {R : Type u_1} [CommRing R] {W : WeierstrassCurve R} {x y : R} (eqn : W.toAffine.Equation x y) (n : ℤ) :
                                                                                                          Jacobian.addXYZ W (W.smulEval x y n) (W.smulEval x y (n + 1)) = W.smulEval x y (2 * n + 1)
                                                                                                          theorem WeierstrassCurve.evalEval_ψ_sq {F : Type u_1} [Field F] (W : WeierstrassCurve F) {x y : F} (h : W.toAffine.Equation x y) (n : ℤ) :
                                                                                                          theorem WeierstrassCurve.evalEval_φ {F : Type u_1} [Field F] (W : WeierstrassCurve F) {x y : F} (h : W.toAffine.Equation x y) (n : ℤ) :