/- Copyright 2025 The Formal Conjectures Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -/ import FormalConjecturesUtil

Some conjectures about ranks of elliptic curves over ℚ

References:

    [PPVW2016] Jennifer Park, Bjorn Poonen, John Voight, and Melanie Matchett Wood. A heuristic for boundedness of ranks of elliptic curves, https://ems.press/journals/jems/articles/16228

    [BS2013] Manjul Bhargava and Arul Shankar. The average size of the 5-Selmer group of elliptic curves is 6, and the average rank is less than 1, https://arxiv.org/pdf/1312.7859

    [Goldfeld1979] Dorian Goldfeld. Conjectures on elliptic curves over quadratic fields, Number Theory Carbondale 1979, Lecture Notes in Math. 751, 108-118, https://doi.org/10.1007/BFb0062705

    [Smith2025] Alexander Smith. The Birch and Swinnerton-Dyer conjecture implies Goldfeld's conjecture, https://arxiv.org/abs/2503.17619

    Wikipedia

    ICARM

namespace EllipticCurveRankopen EllipticCurveRank

A data structure representing isomoprhism classes of elliptic curves over ℚ. Every elliptic curve over ℚ is isomorphic to one with Weierstrass equation y² = x³ + Ax + B, and the pair (A,B) is unique if it satisfy the reduced condition below. See Section 5.1 in [PPVW2016].

structure RatEllipticCurve : Type where A : B : reduced (p : ) : p.Prime ¬ ((p ^ 4 : ) A (p ^ 6 : ) B) Δ_ne_zero : 4 * A ^ 3 + 27 * B ^ 2 0open Module (finrank)open WeierstrassCurve

The rank of an elliptic curve over a number field is always finite by the Mordell–Weil theorem. Consequently, the rank is always finite, so finrank ℤ E⟮K⟯ = 0 really means that the group of rational points is torsion, not that it is of infinite rank.

@[category research solved, AMS 11 14] theorem mordell_weil {K} [Field K] [NumberField K] [DecidableEq K] (E : Affine K) [E.IsElliptic] : Module.Finite E.Point := K:Type u_1inst✝³:Field Kinst✝²:NumberField Kinst✝¹:DecidableEq KE:Affine Kinst✝:WeierstrassCurve.IsElliptic EModule.Finite E.Point All goals completed! 🐙namespace RatEllipticCurve

Convert the structure RatEllipticCurve to a Weierstrass curve.

def toWeierstrass (E : RatEllipticCurve) : Affine := { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }

The rank of an elliptic curve over ℚ.

noncomputable abbrev rank (E : RatEllipticCurve) : := finrank E.toWeierstrass.Pointopen WeierstrassCurve in instance (E : RatEllipticCurve) : E.toWeierstrass.IsElliptic where isUnit := isUnit_iff_ne_zero.mpr <| E:RatEllipticCurveΔ E.toWeierstrass 0 convert mul_ne_zero (show (-16 : ) 0 E:RatEllipticCurveΔ E.toWeierstrass 0 All goals completed! 🐙) (Int.cast_ne_zero.mpr E.Δ_ne_zero) simp_rw E:RatEllipticCurveΔ E.toWeierstrass = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2)E:RatEllipticCurve{ a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.Δ = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2) E:RatEllipticCurve-{ a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₂ ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₄ ^ 3 - 27 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₆ ^ 2 + 9 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₂ * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₄ * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₆ = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2) E:RatEllipticCurve-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₄ ^ 3 - 27 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₆ ^ 2 + 9 * (0 ^ 2 + 4 * 0) * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₄ * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₆ = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2) E:RatEllipticCurve-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * (2 * E.A + 0 * 0) ^ 3 - 27 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₆ ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * E.A + 0 * 0) * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₆ = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2) E:RatEllipticCurve-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * (2 * E.A + 0 * 0) ^ 3 - 27 * (0 ^ 2 + 4 * E.B) ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * E.A + 0 * 0) * (0 ^ 2 + 4 * E.B) = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2) E:RatEllipticCurve-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * (2 * E.A + 0 * 0) ^ 3 - 27 * (0 ^ 2 + 4 * E.B) ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * E.A + 0 * 0) * (0 ^ 2 + 4 * E.B) = -16 * ((4 * E.A ^ 3) + (27 * E.B ^ 2)) E:RatEllipticCurve-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * (2 * E.A + 0 * 0) ^ 3 - 27 * (0 ^ 2 + 4 * E.B) ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * E.A + 0 * 0) * (0 ^ 2 + 4 * E.B) = -16 * (4 * (E.A ^ 3) + 27 * (E.B ^ 2)) E:RatEllipticCurve-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * (2 * E.A + 0 * 0) ^ 3 - 27 * (0 ^ 2 + 4 * E.B) ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * E.A + 0 * 0) * (0 ^ 2 + 4 * E.B) = -16 * (4 * E.A ^ 3 + 27 * E.B ^ 2)] All goals completed! 🐙

The naïve height of an elliptic curve over ℚ.

def naiveHeight (E : RatEllipticCurve) : := max (4 * E.A.natAbs ^ 3) (27 * E.B.natAbs ^ 2)

The set of elliptic curves over ℚ with naïve height less than or equal to a given height.

def heightLE (H : ) : Set RatEllipticCurve := {E : RatEllipticCurve | E.naiveHeight H}open scoped Topologyopen Filter (atTop)

Formula (5.1.1) of [PPVW2016]: The number of elliptic curves over ℚ with naïve height at most H is asymptotically 2^(4/3)*3^(-3/2)/ζ(10) * H^(5/6).

@[category textbook, AMS 11 14] theorem card_heightLE_div_pow_five_div_six_tensto : atTop.Tendsto (fun H (heightLE H).ncard / (H : ) ^ (5 / 6 : )) (𝓝 (2 ^ (4 / 3 : ) * 3 ^ (-3 / 2 : ) / (riemannZeta 10).re)) := Filter.Tendsto (fun H (heightLE H).ncard / H ^ (5 / 6)) atTop (𝓝 (2 ^ (4 / 3) * 3 ^ (-3 / 2) / (riemannZeta 10).re)) All goals completed! 🐙

Conjecture by Goldfeld and Katz–Sarnak: if elliptic curves over ℚ are ordered by their heights, then 50% of the curves have rank 0 and 50% have rank 1. See p. 28 of https://people.maths.bris.ac.uk/~matyd/BSD2011/bsd2011-Bhargava.pdf.

@[category research open, AMS 11 14] theorem half_rank_zero_and_half_rank_one (r : ) (hr : r = 0 r = 1) : atTop.Tendsto (fun H ({E heightLE H | E.rank = r}.ncard / (heightLE H).ncard : )) (𝓝 (1 / 2)) := r:hr:r = 0 r = 1Filter.Tendsto (fun H {E | E heightLE H E.rank = r}.ncard / (heightLE H).ncard) atTop (𝓝 (1 / 2)) All goals completed! 🐙

Theorem 3 of [BS2013]: when elliptic curves over ℚ are ordered by height, their average rank is < .885.

@[category research solved, AMS 11 14] theorem avg_rank_lt_0885 : atTop.limsup (fun H ((∑ᶠ E : heightLE H, E.1.rank) / (heightLE H).ncard : )) < 0.885 := Filter.limsup (fun H (∑ᶠ (E : (heightLE H)), (↑E).rank) / (heightLE H).ncard) atTop < 0.885 All goals completed! 🐙

Theorem 4 of [BS2013]: when elliptic curves over ℚ are ordered by height, a density of at least 83.75% have rank 0 or 1.

@[category research solved, AMS 11 14] theorem _08375_le_density_rank_zero_one : 0.8375 atTop.liminf fun H ({E heightLE H | E.rank = 0 E.rank = 1}.ncard / (heightLE H).ncard : ) := 0.8375 Filter.liminf (fun H {E | E heightLE H (E.rank = 0 E.rank = 1)}.ncard / (heightLE H).ncard) atTop All goals completed! 🐙

Theorem 5 of [BS2013]: when elliptic curves over ℚ are ordered by height, a density of at least 20.62% have rank 0.

@[category research solved, AMS 11 14] theorem _02062_le_density_rank_zero : 0.2062 atTop.liminf fun H ({E heightLE H | E.rank = 0}.ncard / (heightLE H).ncard : ) := 0.2062 Filter.liminf (fun H {E | E heightLE H E.rank = 0}.ncard / (heightLE H).ncard) atTop All goals completed! 🐙

The quadratic twist $E^d$ of $E : y^2 = x^3 + Ax + B$ by an integer $d$, given by the Weierstrass equation $y^2 = x^3 + d^2Ax + d^3B$. For $d \neq 0$ this is the twist of $E$ corresponding to the quadratic field $\mathbb{Q}(\sqrt{d})$. See Section 1 of [Smith2025].

def quadraticTwist (E : RatEllipticCurve) (d : ) : Affine := { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := d ^ 2 * E.A, a₆ := d ^ 3 * E.B }

The twist of $E$ by $d = 1$ is $E$ itself.

@[category API, AMS 11 14] theorem quadraticTwist_one (E : RatEllipticCurve) : E.quadraticTwist 1 = E.toWeierstrass := E:RatEllipticCurveE.quadraticTwist 1 = E.toWeierstrass All goals completed! 🐙

The quadratic twist of an elliptic curve over $\mathbb{Q}$ by a nonzero $d$ is again an elliptic curve.

@[category API, AMS 11 14] theorem isElliptic_quadraticTwist (E : RatEllipticCurve) {d : } (hd : d 0) : (E.quadraticTwist d).IsElliptic where isUnit := isUnit_iff_ne_zero.mpr <| E:RatEllipticCurved:hd:d 0Δ (E.quadraticTwist d) 0 E:RatEllipticCurved:hd:d 0Δ (E.quadraticTwist d) = d ^ 6 * Δ E.toWeierstrass E:RatEllipticCurved:hd:d 0-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := d ^ 2 * E.A, a₆ := d ^ 3 * E.B }.b₈ - 8 * (2 * (d ^ 2 * E.A) + 0 * 0) ^ 3 - 27 * (0 ^ 2 + 4 * (d ^ 3 * E.B)) ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * (d ^ 2 * E.A) + 0 * 0) * (0 ^ 2 + 4 * (d ^ 3 * E.B)) = d ^ 6 * (-(0 ^ 2 + 4 * 0) ^ 2 * { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := E.A, a₆ := E.B }.b₈ - 8 * (2 * E.A + 0 * 0) ^ 3 - 27 * (0 ^ 2 + 4 * E.B) ^ 2 + 9 * (0 ^ 2 + 4 * 0) * (2 * E.A + 0 * 0) * (0 ^ 2 + 4 * E.B)) All goals completed! 🐙

The naïve height of the Weierstrass model $E^d$ is $|d|^6$ times the naïve height of $E$. Ordering the twists of $E$ by $|d|$ is therefore the same as ordering them by naïve height.

@[category API, AMS 11 14] theorem naiveHeight_quadraticTwist (E : RatEllipticCurve) (d : ) : max (4 * (d ^ 2 * E.A).natAbs ^ 3) (27 * (d ^ 3 * E.B).natAbs ^ 2) = d.natAbs ^ 6 * E.naiveHeight := E:RatEllipticCurved:max (4 * (d ^ 2 * E.A).natAbs ^ 3) (27 * (d ^ 3 * E.B).natAbs ^ 2) = d.natAbs ^ 6 * E.naiveHeight E:RatEllipticCurved:max (4 * ((d.natAbs ^ 2) ^ 3 * E.A.natAbs ^ 3)) (27 * ((d.natAbs ^ 3) ^ 2 * E.B.natAbs ^ 2)) = max (d.natAbs ^ 6 * (4 * E.A.natAbs ^ 3)) (d.natAbs ^ 6 * (27 * E.B.natAbs ^ 2)) All goals completed! 🐙

The rank of the quadratic twist $E^d$ of an elliptic curve $E$ over $\mathbb{Q}$.

noncomputable abbrev twistRank (E : RatEllipticCurve) (d : ) : := finrank (E.quadraticTwist d).Point

The set of nonzero integers $d$ with $|d| \leq H$, which index the quadratic twists $E^d$ ordered by $|d|$. By naiveHeight_quadraticTwist this is the same as ordering them by height.

def twistIndexLE (H : ) : Set := {d : | d 0 |d| (H : )}

There are $2H$ nonzero integers $d$ with $|d| \leq H$. This is the normalisation used in [Smith2025].

H:this:twistIndexLE H = ((Finset.Icc (-H) H).erase 0)(H + 1 - -H).toNat - 1 = 2 * H All goals completed! 🐙

Goldfeld's conjecture ([Goldfeld1979], Conjecture B), in the form stated in the introduction of [Smith2025]: when the quadratic twists $E^d$ of an elliptic curve $E$ over $\mathbb{Q}$ are ordered by $|d|$, 50% of them have rank $0$ and 50% have rank $1$. See goldfeld_conjecture.variants.two_le for the remaining case $2 \leq r$.

Goldfeld states the conjecture for the analytic rank of $E^d$, which the Birch and Swinnerton-Dyer conjecture predicts is equal to the Mordell–Weil rank used here. Corollary 1.2 of [Smith2025] proves that the Birch and Swinnerton-Dyer conjecture for the quadratic twist family of $E$ implies Goldfeld's conjecture for $E$.

@[category research open, AMS 11 14] theorem goldfeld_conjecture (E : RatEllipticCurve) (r : ) (hr : r = 0 r = 1) : atTop.Tendsto (fun H ({d twistIndexLE H | E.twistRank d = r}.ncard / (twistIndexLE H).ncard : )) (𝓝 (1 / 2)) := E:RatEllipticCurver:hr:r = 0 r = 1Filter.Tendsto (fun H {d | d twistIndexLE H E.twistRank d = r}.ncard / (twistIndexLE H).ncard) atTop (𝓝 (1 / 2)) All goals completed! 🐙

Goldfeld's conjecture ([Goldfeld1979], Conjecture B), in the form stated in the introduction of [Smith2025], in the case $2 \leq r$: a density $0$ of the quadratic twists $E^d$ of an elliptic curve $E$ over $\mathbb{Q}$ have rank $r$.

@[category research open, AMS 11 14] theorem goldfeld_conjecture.variants.two_le (E : RatEllipticCurve) (r : ) (hr : 2 r) : atTop.Tendsto (fun H ({d twistIndexLE H | E.twistRank d = r}.ncard / (twistIndexLE H).ncard : )) (𝓝 0) := E:RatEllipticCurver:hr:2 rFilter.Tendsto (fun H {d | d twistIndexLE H E.twistRank d = r}.ncard / (twistIndexLE H).ncard) atTop (𝓝 0) All goals completed! 🐙

Goldfeld's conjecture with $d$ restricted to squarefree integers, which is how it is usually stated informally: 50% of the quadratic twists of $E$ have rank $0$ and 50% have rank $1$. Every quadratic twist of $E$ is isomorphic to $E^d$ for a unique squarefree $d$, so the squarefree $d$ enumerate the distinct twists without repetition.

@[category research open, AMS 11 14] theorem goldfeld_conjecture.variants.squarefree (E : RatEllipticCurve) (r : ) (hr : r = 0 r = 1) : atTop.Tendsto (fun H ({d twistIndexLE H | Squarefree d E.twistRank d = r}.ncard / {d twistIndexLE H | Squarefree d}.ncard : )) (𝓝 (1 / 2)) := E:RatEllipticCurver:hr:r = 0 r = 1Filter.Tendsto (fun H {d | d twistIndexLE H Squarefree d E.twistRank d = r}.ncard / {d | d twistIndexLE H Squarefree d}.ncard) atTop (𝓝 (1 / 2)) All goals completed! 🐙

From [PPVW2016], Section 3.1: "from the mid-1960s to the present, it seems that most experts conjectured unboundedness."

@[category research open, AMS 11 14] theorem unbounded_rank_conjecture (n : ) : E : RatEllipticCurve, n E.rank := n: E, n E.rank All goals completed! 🐙

From [PPVW2016], Section 8.2: "Our heuristic predicts (a) All but finitely many E ∈ ℰ satisfy rk E(ℚ) ≤ 21". In other words, there are only finitely many elliptic curves over ℚ (up to isomorphism) with rank greater than 21. Notice that this contradicts the previous conjecture.

@[category research open, AMS 11 14] theorem finite_twentyone_lt_finrank : {E : RatEllipticCurve | 21 < E.rank}.Finite := {E | 21 < E.rank}.Finite All goals completed! 🐙

[PPVW2016] 8.2(b): for 1 ≤ r ≤ 20, the number of elliptic curves over ℚ with rank r and naïve height at most H is asymptotically H ^ ((21 - r) / 24 + o(1)). Note: ℰ_H in 8.2(b) should be ℰ_{≤H}, see the statement of Theorem 7.3.3. When r = 1, the exponent is 20 / 24 = 5 / 6, which agrees with the exponent in card_heightLE_div_pow_five_div_six_tensto and is consistent with half_rank_zero_and_half_rank_one.

@[category research open, AMS 11 14] theorem rank_height_count_asymptotic (r : ) (h₁ : 1 r) (h₂ : r 20) : f : , atTop.Tendsto f (𝓝 0) H : , 1 < H {E heightLE H | r E.rank}.ncard = (H : ) ^ ((21 - r) / 24 + f H) := r:h₁:1 rh₂:r 20 f, Filter.Tendsto f atTop (𝓝 0) (H : ), 1 < H {E | E heightLE H r E.rank}.ncard = H ^ ((21 - r) / 24 + f H) All goals completed! 🐙

[PPVW2016] 8.2(c): the number of elliptic curves over ℚ with rank ≥ 21 and naïve height at most H is asymptotically at most H ^ o(1).

@[category research open, AMS 11 14] theorem twentyone_le_rank_height_count_asymptotic : f : , atTop.Tendsto f (𝓝 0) H : , 1 < H {E heightLE H | 21 E.rank}.ncard (H : ) ^ f H := f, Filter.Tendsto f atTop (𝓝 0) (H : ), 1 < H {E | E heightLE H 21 E.rank}.ncard H ^ f H All goals completed! 🐙

Is there an elliptic curve over ℚ of rank at least 31?

The answer is yes: such a curve was found by Claude, Levent Alpöge and Ava Howell in 2026. See https://elliptic-rank.icarm.cloud/curve/302 and WeierstrassCurve.claudeAlpogeHowell31 below.

@[category research solved, AMS 11 14] theorem exists_rank_ge_thirtyone : E : RatEllipticCurve, 31 E.rank := E, 31 E.rank All goals completed! 🐙

Is there an elliptic curve over ℚ of rank at least 32? The largest known rank of an elliptic curve over ℚ as of 2026 is at least 31 (and exactly 31 assuming the generalized Riemann hypothesis and Birch and Swinnerton-Dyer conjecture). See https://elliptic-rank.icarm.cloud/curve/302.

@[category research open, AMS 11 14] theorem exists_rank_ge_thirtytwo : E : RatEllipticCurve, 32 E.rank := E, 32 E.rank All goals completed! 🐙end RatEllipticCurvenamespace WeierstrassCurve

The elliptic curve over ℚ of rank at least 31 found by Claude, Levent Alpöge and Ava Howell in 2026. It has rank exactly 31 assuming the generalized Riemann hypothesis and Birch and Swinnerton-Dyer conjecture.

def claudeAlpogeHowell31 : Affine where a₁ := 1 a₂ := 1 a₃ := 1 a₄ := -1284727764113567728281797636015784768866707681415849262157224232063 a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181

See https://elliptic-rank.icarm.cloud/curve/302. User profile: https://elliptic-rank.icarm.cloud/user/18 and https://elliptic-rank.icarm.cloud/user/53

-({ a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₂) ^ 2 * ({ a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₁ ^ 2 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₆ + 4 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₂ * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₆ - { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₁ * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₃ * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₄ + { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₂ * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₃ ^ 2 - { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₄ ^ 2) - 8 * (2 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₄ + { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₁ * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₃) ^ 3 - 27 * ({ a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₆) ^ 2 + 9 * ({ a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₂) * (2 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₄ + { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₁ * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₃) * ({ a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := 1, a₃ := 1, a₄ := -1284727764113567728281797636015784768866707681415849262157224232063, a₆ := 560368321454261339256859338901915312332769858684945406858043869199456710681989058863306170127006181 }.a₆) = 2 ^ 15 * 3 ^ 4 * 5 ^ 4 * 7 ^ 6 * 11 ^ 4 * 13 ^ 5 * 19 ^ 2 * 23 ^ 2 * 29 ^ 3 * 37 ^ 2 * 41 ^ 2 * 73 ^ 2 * 131 ^ 2 * 167 ^ 2 * 7547 * 632881 * 966509 * 18145679437533309132469 * 767028866604834801397681553 * 30580600452196904409276223329355584892025407195996968868775951126238056443210297; All goals completed! 🐙IsUnit (2 ^ 15 * 3 ^ 4 * 5 ^ 4 * 7 ^ 6 * 11 ^ 4 * 13 ^ 5 * 19 ^ 2 * 23 ^ 2 * 29 ^ 3 * 37 ^ 2 * 41 ^ 2 * 73 ^ 2 * 131 ^ 2 * 167 ^ 2 * 7547 * 632881 * 966509 * 18145679437533309132469 * 767028866604834801397681553 * 30580600452196904409276223329355584892025407195996968868775951126238056443210297); All goals completed! 🐙

The rank of the Claude–Alpöge–Howell curve is at least 31.

@[category research solved, AMS 11 14] theorem thirtyone_le_rank_claudeAlpogeHowell31 : 31 finrank claudeAlpogeHowell31.Point := 31 finrank claudeAlpogeHowell31.Point All goals completed! 🐙

The rank of the Claude–Alpöge–Howell curve is exactly 31. It has rank exactly 31 assuming the generalized Riemann hypothesis and the Birch and Swinnerton-Dyer conjecture.

@[category research open, AMS 11 14] theorem rank_claudeAlpogeHowell31 : finrank claudeAlpogeHowell31.Point = 31 := finrank claudeAlpogeHowell31.Point = 31 All goals completed! 🐙

The elliptic curve over ℚ of rank at least 30 found by user ranksunbounded in 2026. User profile: https://elliptic-rank.icarm.cloud/user/18 It has rank exactly 30 assuming the generalized Riemann hypothesis and Birch and Swinnerton-Dyer conjecture.

def ranksunbounded30 : Affine where a₁ := 1 a₂ := 0 a₃ := 0 a₄ := -201769035260418549083594900060734240952308696994802735114305555 a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377

See https://elliptic-rank.icarm.cloud/curve/273.

-({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₂) ^ 2 * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₁ ^ 2 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₆ + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₂ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₆ - { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₁ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₃ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₄ + { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₂ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₃ ^ 2 - { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₄ ^ 2) - 8 * (2 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₄ + { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₁ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₃) ^ 3 - 27 * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₆) ^ 2 + 9 * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₂) * (2 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₄ + { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₁ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₃) * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -201769035260418549083594900060734240952308696994802735114305555, a₆ := 1151107939141058565733479426024323225135665982951300586808823640527729578307228357301072889377 }.a₆) = -2 ^ 16 * 3 ^ 12 * 5 ^ 8 * 7 ^ 5 * 13 ^ 5 * 31 ^ 2 * 41 ^ 2 * 47 ^ 4 * 53 ^ 3 * 67 ^ 3 * 379 ^ 2 * 4349 * 25721454817 * 97018222656318846556561979214040553412450110580812087282349817173780902099339117104673990259247421230916714670243202937; All goals completed! 🐙IsUnit (-2 ^ 16 * 3 ^ 12 * 5 ^ 8 * 7 ^ 5 * 13 ^ 5 * 31 ^ 2 * 41 ^ 2 * 47 ^ 4 * 53 ^ 3 * 67 ^ 3 * 379 ^ 2 * 4349 * 25721454817 * 97018222656318846556561979214040553412450110580812087282349817173780902099339117104673990259247421230916714670243202937); All goals completed! 🐙

The rank of the ranksunbounded curve is at least 30.

@[category research solved, AMS 11 14] theorem thirty_le_rank_ranksunbounded30 : 30 finrank ranksunbounded30.Point := 30 finrank ranksunbounded30.Point All goals completed! 🐙

The rank of the ranksunbounded curve is exactly 30.

@[category research open, AMS 11 14] theorem rank_ranksunbounded30 : finrank ranksunbounded30.Point = 30 := finrank ranksunbounded30.Point = 30 All goals completed! 🐙

The elliptic curve over ℚ of rank at least 29 found by Elkies and Klagsbrun in 2024. It has rank exactly 29 assuming the generalized Riemann hypothesis.

def elkiesKlagsbrun29 : Affine where a₁ := 1 a₂ := 0 a₃ := 0 a₄ := -27006183241630922218434652145297453784768054621836357954737385 a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497

See https://mathoverflow.net/a/478050.

-({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₂) ^ 2 * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₁ ^ 2 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₆ + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₂ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₆ - { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₁ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₃ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₄ + { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₂ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₃ ^ 2 - { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₄ ^ 2) - 8 * (2 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₄ + { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₁ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₃) ^ 3 - 27 * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₆) ^ 2 + 9 * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₂) * (2 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₄ + { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₁ * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₃) * ({ a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := 0, a₃ := 0, a₄ := -27006183241630922218434652145297453784768054621836357954737385, a₆ := 55258058551342376475736699591118191821521067032535079608372404779149413277716173425636721497 }.a₆) = -2 ^ 19 * 3 ^ 7 * 5 ^ 7 * 7 ^ 4 * 11 ^ 5 * 13 ^ 3 * 17 ^ 4 * 31 ^ 3 * 41 ^ 2 * 43 ^ 2 * 61 ^ 2 * 233 * 241 ^ 2 * 4139 * 678146849364709860535420504397393 * 159788990966780131363155786084695062643236502969 * 4402149008473369392540402625019227412319473055901; All goals completed! 🐙IsUnit (-2 ^ 19 * 3 ^ 7 * 5 ^ 7 * 7 ^ 4 * 11 ^ 5 * 13 ^ 3 * 17 ^ 4 * 31 ^ 3 * 41 ^ 2 * 43 ^ 2 * 61 ^ 2 * 233 * 241 ^ 2 * 4139 * 678146849364709860535420504397393 * 159788990966780131363155786084695062643236502969 * 4402149008473369392540402625019227412319473055901); All goals completed! 🐙

The rank of the Elkies-Klagsbrun curve is at least 29.

@[category research solved, AMS 11 14] theorem twentynine_le_rank_elkiesKlagsbrun29 : 29 finrank elkiesKlagsbrun29.Point := 29 finrank elkiesKlagsbrun29.Point All goals completed! 🐙

The rank of the Elkies-Klagsbrun curve is exactly 29.

@[category research open, AMS 11 14] theorem rank_elkiesKlagsbrun29 : finrank elkiesKlagsbrun29.Point = 29 := finrank elkiesKlagsbrun29.Point = 29 All goals completed! 🐙

The elliptic curve over ℚ of rank at least 28 found by Elkies in 2006. It has rank exactly 28 assuming the generalized Riemann hypothesis.

def elkies28 : Affine where a₁ := 1 a₂ := -1 a₃ := 1 a₄ := -20067762415575526585033208209338542750930230312178956502 a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429

See https://mathoverflow.net/a/478050.

-({ a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₂) ^ 2 * ({ a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₁ ^ 2 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₆ + 4 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₂ * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₆ - { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₁ * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₃ * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₄ + { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₂ * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₃ ^ 2 - { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₄ ^ 2) - 8 * (2 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₄ + { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₁ * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₃) ^ 3 - 27 * ({ a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₆) ^ 2 + 9 * ({ a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₁ ^ 2 + 4 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₂) * (2 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₄ + { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₁ * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₃) * ({ a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₃ ^ 2 + 4 * { a₁ := 1, a₂ := -1, a₃ := 1, a₄ := -20067762415575526585033208209338542750930230312178956502, a₆ := 34481611795030556467032985690390720374855944359319180361266008296291939448732243429 }.a₆) = 2 ^ 15 * 3 ^ 6 * 5 ^ 6 * 7 ^ 4 * 11 ^ 2 * 13 ^ 4 * 17 ^ 5 * 19 ^ 3 * 48463 * 20650099 * 315574902691581877528345013999136728634663121 * 376018840263193489397987439236873583997122096511452343225772113000611087671413; All goals completed! 🐙IsUnit (2 ^ 15 * 3 ^ 6 * 5 ^ 6 * 7 ^ 4 * 11 ^ 2 * 13 ^ 4 * 17 ^ 5 * 19 ^ 3 * 48463 * 20650099 * 315574902691581877528345013999136728634663121 * 376018840263193489397987439236873583997122096511452343225772113000611087671413); All goals completed! 🐙

The rank of the Elkies curve is at least 28.

@[category research solved, AMS 11 14] theorem twentyeight_le_rank_elkies28 : 28 finrank elkies28.Point := 28 finrank elkies28.Point All goals completed! 🐙

The rank of the Elkies curve is exactly 28.

@[category research open, AMS 11 14] theorem rank_elkies28 : finrank elkies28.Point = 28 := finrank elkies28.Point = 28 All goals completed! 🐙-- TODO: compute the rank of some rank 0 / 1 curve. end WeierstrassCurveend EllipticCurveRank