FormalConjectures/Wikipedia/EllipticCurveRank.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
48 declarations, 23 contain sorry, 0 declared as axioms
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
- [Stoll] Michael Stoll. EllipticCurves, a Lean 4 formalization of the Mordell–Weil theorem and explicit 2-descent, https://github.com/MichaelStollBayreuth/EllipticCurves
Imports (1)
Imported by 1 file
- structure
EllipticCurveRank.RatEllipticCurveA data structure representing isomoprhism classes of elliptic curves over ℚ line 50 sourceSource documentation
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 thereducedcondition below. See Section 5.1 in [PPVW2016].standard axioms: propext what this means
structure RatEllipticCurve : Type where …
- theorem
EllipticCurveRank.mordell_weilsorry line 67 sourcedepends on sorry what this means
Statement uses:
Field,NumberField,DecidableEq,WeierstrassCurve.Affine,WeierstrassCurve.IsElliptic,Module.Finite,Int,WeierstrassCurve.Affine.PointProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
EllipticCurveRank.RatEllipticCurve.toWeierstrassConvert the structureRatEllipticCurveto a Weierstrass curve line 74 sourceSource documentation
Convert the structure
RatEllipticCurveto a Weierstrass curve.standard axioms: Quot.sound, propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
WeierstrassCurve.Affine,RatProof uses:
WeierstrassCurve.mk,OfNat.ofNat,EllipticCurveRank.RatEllipticCurve.A,EllipticCurveRank.RatEllipticCurve.B3 instances, coercions and auxiliary constants left out.
def toWeierstrass (E : RatEllipticCurve) : Affine ℚ := …
Mentions: EllipticCurveRank.RatEllipticCurve
- abbrev
EllipticCurveRank.RatEllipticCurve.rankThe rank of an elliptic curve over ℚ line 78 sourceSource documentation
The rank of an elliptic curve over ℚ.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
NatProof uses:
Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.RatEllipticCurve.toWeierstrass7 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
noncomputable abbrev rank (E : RatEllipticCurve) : ℕ := finrank ℤ E.toWeierstrass.Point …
Mentions: EllipticCurveRank.RatEllipticCurve
- instance
EllipticCurveRank.RatEllipticCurve.(instance at line 81)line 81 source - def
EllipticCurveRank.RatEllipticCurve.naiveHeightThe naïve height of an elliptic curve over ℚ line 88 sourceSource documentation
The naïve height of an elliptic curve over ℚ.
standard axioms: propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
NatProof uses:
Max.max,HMul.hMul,OfNat.ofNat,HPow.hPow,Int.natAbs,EllipticCurveRank.RatEllipticCurve.A,EllipticCurveRank.RatEllipticCurve.B8 instances, coercions and auxiliary constants left out.
def naiveHeight (E : RatEllipticCurve) : ℕ := max (4 * E.A.natAbs ^ 3) (27 * E.B.natAbs ^ 2)
Mentions: EllipticCurveRank.RatEllipticCurve
- def
EllipticCurveRank.RatEllipticCurve.heightLEThe set of elliptic curves over ℚ with naïve height less than or equal to a given height line 91 sourceSource documentation
The set of elliptic curves over ℚ with naïve height less than or equal to a given height.
standard axioms: propext what this means
Statement uses:
Nat,Set, EllipticCurveRank.RatEllipticCurveProof uses:
Set.ofPred,LE.le, EllipticCurveRank.RatEllipticCurve.naiveHeight1 instances, coercions and auxiliary constants left out.
def heightLE (H : ℕ) : Set RatEllipticCurve := {E : RatEllipticCurve | E.naiveHeight ≤ H} …Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.card_heightLE_div_pow_five_div_six_tenstoFormula (5.1.1) of [PPVW2016]: The number of elliptic curves over ℚ with naïve height at mostHis asymptotically2^(4/3)*3^(-3/2)/ζ(10) * H^(5/6)sorry line 99 sourceSource documentation
Formula (5.1.1) of [PPVW2016]: The number of elliptic curves over ℚ with naïve height at most
His asymptotically2^(4/3)*3^(-3/2)/ζ(10) * H^(5/6).depends on sorry what this means
Statement uses:
Filter.Tendsto,Nat,Real,HDiv.hDiv,Set.ncard, EllipticCurveRank.RatEllipticCurve, EllipticCurveRank.RatEllipticCurve.heightLE,HPow.hPow,OfNat.ofNat,Filter.atTop,nhds,HMul.hMul,Neg.neg,Complex.re,riemannZeta,ComplexProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous38 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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)) := by … - theorem
EllipticCurveRank.RatEllipticCurve.half_rank_zero_and_half_rank_oneConjecture 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 sorry line 108 sourceSource documentation
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.
depends on sorry what this means
Statement uses:
Nat,Or,Eq,OfNat.ofNat,Filter.Tendsto,Real,HDiv.hDiv,Set.ncard, EllipticCurveRank.RatEllipticCurve,Set.ofPred,And,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.heightLE, EllipticCurveRank.RatEllipticCurve.rank,Filter.atTop,nhdsProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous32 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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)) := by … - theorem
EllipticCurveRank.RatEllipticCurve.avg_rank_lt_0885Theorem 3 of [BS2013]: when elliptic curves over ℚ are ordered by height, their average rank is < .885 sorry line 116 sourceSource documentation
Theorem 3 of [BS2013]: when elliptic curves over ℚ are ordered by height, their average rank is < .885.
depends on sorry what this means
Statement uses:
LT.lt,Real,Filter.limsup,Nat,HDiv.hDiv,finsum, EllipticCurveRank.RatEllipticCurve, EllipticCurveRank.RatEllipticCurve.heightLE, EllipticCurveRank.RatEllipticCurve.rank,Membership.mem,Set,Set.ncard,Filter.atTop,OfScientific.ofScientific,Bool.trueProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat31 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem avg_rank_lt_0885 : atTop.limsup (fun H ↦ ((∑ᶠ E : heightLE H, E.1.rank) / (heightLE H).ncard : ℝ)) < 0.885 := by … - theorem
EllipticCurveRank.RatEllipticCurve._08375_le_density_rank_zero_oneTheorem 4 of [BS2013]: when elliptic curves over ℚ are ordered by height, a density of at least 83.75% have rank 0 or 1 sorry line 124 sourceSource documentation
Theorem 4 of [BS2013]: when elliptic curves over ℚ are ordered by height, a density of at least 83.75% have rank 0 or 1.
depends on sorry what this means
Statement uses:
LE.le,Real,OfScientific.ofScientific,Bool.true,Filter.liminf,Nat,HDiv.hDiv,Set.ncard, EllipticCurveRank.RatEllipticCurve,Set.ofPred,And,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.heightLE,Or,Eq, EllipticCurveRank.RatEllipticCurve.rank,OfNat.ofNat,Filter.atTopProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous26 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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 : ℝ) := by … - theorem
EllipticCurveRank.RatEllipticCurve._02062_le_density_rank_zeroTheorem 5 of [BS2013]: when elliptic curves over ℚ are ordered by height, a density of at least 20.62% have rank 0 sorry line 131 sourceSource documentation
Theorem 5 of [BS2013]: when elliptic curves over ℚ are ordered by height, a density of at least 20.62% have rank 0.
depends on sorry what this means
Statement uses:
LE.le,Real,OfScientific.ofScientific,Bool.true,Filter.liminf,Nat,HDiv.hDiv,Set.ncard, EllipticCurveRank.RatEllipticCurve,Set.ofPred,And,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.heightLE,Eq, EllipticCurveRank.RatEllipticCurve.rank,OfNat.ofNat,Filter.atTopProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous26 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem _02062_le_density_rank_zero : 0.2062 ≤ atTop.liminf fun H ↦ ({E ∈ heightLE H | E.rank = 0}.ncard / (heightLE H).ncard : ℝ) := by … - def
EllipticCurveRank.RatEllipticCurve.quadraticTwistThe 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$ line 138 sourceSource documentation
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].
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Int,WeierstrassCurve.Affine,RatProof uses:
WeierstrassCurve.mk,OfNat.ofNat,HMul.hMul,HPow.hPow,Nat,EllipticCurveRank.RatEllipticCurve.A,EllipticCurveRank.RatEllipticCurve.B10 instances, coercions and auxiliary constants left out.
def quadraticTwist (E : RatEllipticCurve) (d : ℤ) : Affine ℚ := …
Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.quadraticTwist_oneThe twist of $E$ by $d = 1$ is $E$ itself line 143 sourceSource documentation
The twist of $E$ by $d = 1$ is $E$ itself.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Eq,WeierstrassCurve.Affine,Rat, EllipticCurveRank.RatEllipticCurve.quadraticTwist,OfNat.ofNat,Int, EllipticCurveRank.RatEllipticCurve.toWeierstrassProof uses:
of_eq_true,WeierstrassCurve.mk,EllipticCurveRank.RatEllipticCurve.A,EllipticCurveRank.RatEllipticCurve.B,Eq.trans,True,congrFun',congrArg,congr,WeierstrassCurve,HMul.hMul,HPow.hPow,Nat,Int.cast_one,one_pow,one_mul,eq_self26 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem quadraticTwist_one (E : RatEllipticCurve) : E.quadraticTwist 1 = E.toWeierstrass := by …
Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.isElliptic_quadraticTwistThe quadratic twist of an elliptic curve over $\mathbb{Q}$ by a nonzero $d$ is again an elliptic curve line 149 sourceSource documentation
The quadratic twist of an elliptic curve over $\mathbb{Q}$ by a nonzero $d$ is again an elliptic curve.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Int,Ne,OfNat.ofNat,WeierstrassCurve.IsElliptic,Rat, EllipticCurveRank.RatEllipticCurve.quadraticTwistProof uses:
WeierstrassCurve.IsElliptic.mk,Iff.mpr,IsUnit,WeierstrassCurve.Δ,isUnit_iff_ne_zero,Eq.mpr,HMul.hMul,HPow.hPow,Nat, EllipticCurveRank.RatEllipticCurve.toWeierstrass,eq_of_heq,Eq,HEq,Eq.refl,HEq.refl,Eq.symm,id,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,HSub.hSuband 64 more81 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem isElliptic_quadraticTwist (E : RatEllipticCurve) {d : ℤ} (hd : d ≠ 0) : (E.quadraticTwist d).IsElliptic where …Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.naiveHeight_quadraticTwistThe naïve height of the Weierstrass model $E^d$ is $|d|^6$ times the naïve height of $E$ line 159 sourceSource documentation
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.
standard axioms: propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Int,Eq,Nat,Max.max,HMul.hMul,OfNat.ofNat,HPow.hPow,Int.natAbs,EllipticCurveRank.RatEllipticCurve.A,EllipticCurveRank.RatEllipticCurve.B, EllipticCurveRank.RatEllipticCurve.naiveHeightProof uses:
Eq.mpr,id,congr,congrArg,Eq.trans,congrFun',Int.natAbs_mul,Int.natAbs_pow,mul_pow,of_eq_true,True,HAdd.hAdd,Nat.rawCast,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfland 20 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
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 := by …Mentions: EllipticCurveRank.RatEllipticCurve
- abbrev
EllipticCurveRank.RatEllipticCurve.twistRankThe rank of the quadratic twist $E^d$ of an elliptic curve $E$ over $\mathbb{Q}$ line 166 sourceSource documentation
The rank of the quadratic twist $E^d$ of an elliptic curve $E$ over $\mathbb{Q}$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Int,NatProof uses:
Module.finrank,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.RatEllipticCurve.quadraticTwist7 instances, coercions and auxiliary constants left out.
noncomputable abbrev twistRank (E : RatEllipticCurve) (d : ℤ) : ℕ := …
Mentions: EllipticCurveRank.RatEllipticCurve
- def
EllipticCurveRank.RatEllipticCurve.twistIndexLEThe set of nonzero integers $d$ with $|d| \leq H$, which index the quadratic twists $E^d$ ordered by $|d|$ line 171 sourceSource documentation
The set of nonzero integers $d$ with $|d| \leq H$, which index the quadratic twists $E^d$ ordered by $|d|$. By
naiveHeight_quadraticTwistthis is the same as ordering them by height.standard axioms: propext what this means
Statement uses:
Nat,Set,IntProof uses:
Set.ofPred,And,Ne,OfNat.ofNat,LE.le,abs6 instances, coercions and auxiliary constants left out.
def twistIndexLE (H : ℕ) : Set ℤ := {d : ℤ | d ≠ 0 ∧ |d| ≤ (H : ℤ)} … - theorem
EllipticCurveRank.RatEllipticCurve.ncard_twistIndexLEThere are $2H$ nonzero integers $d$ with $|d| \leq H$ line 176 sourceSource documentation
There are $2H$ nonzero integers $d$ with $|d| \leq H$. This is the normalisation used in [Smith2025].
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Set.ncard,Int, EllipticCurveRank.RatEllipticCurve.twistIndexLE,HMul.hMul,OfNat.ofNatProof uses:
Set,Finset,Finset.erase,Finset.Icc,Neg.neg,Set.ext,of_eq_true,Iff,Membership.mem,Eq.trans,And,LE.le,Not,True,congr,congrArg,congrFun',Set.ofPred,Ne,absand 17 more64 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem ncard_twistIndexLE (H : ℕ) : (twistIndexLE H).ncard = 2 * H := by …
- theorem
EllipticCurveRank.RatEllipticCurve.goldfeld_conjectureGoldfeld's conjecture ([Goldfeld1979], Conjecture B), in the form stated in the introduction of [Smith2025]: when the quadratic twists sorry line 192 sourceSource documentation
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_lefor 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$.
depends on sorry what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Nat,Or,Eq,OfNat.ofNat,Filter.Tendsto,Real,HDiv.hDiv,Set.ncard,Int,Set.ofPred,And,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.twistIndexLE, EllipticCurveRank.RatEllipticCurve.twistRank,Filter.atTop,nhdsProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous32 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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)) := by …Mentions: EllipticCurveRank.RatEllipticCurve, EllipticCurveRank.RatEllipticCurve.twistIndexLE
- theorem
EllipticCurveRank.RatEllipticCurve.goldfeld_conjecture.variants.two_leGoldfeld's conjecture ([Goldfeld1979], Conjecture B), in the form stated in the introduction of [Smith2025], in the case sorry line 208 sourceSource documentation
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$.
For the Mordell–Weil rank used here this is an unconditional theorem: by Theorem 1.1 of [Smith2025], $100\%$ of the twists $E^d$ have $2^\infty$-Selmer corank $0$ or $1$, and the Mordell–Weil rank is at most the $2^\infty$-Selmer corank (equation (1.1) there), so the twists of rank at least $2$ have density $0$. The corresponding statement for the analytic rank is open.
depends on sorry what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Nat,LE.le,OfNat.ofNat,Filter.Tendsto,Real,HDiv.hDiv,Set.ncard,Int,Set.ofPred,And,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.twistIndexLE,Eq, EllipticCurveRank.RatEllipticCurve.twistRank,Filter.atTop,nhdsProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous28 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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) := by …Mentions: EllipticCurveRank.RatEllipticCurve, EllipticCurveRank.RatEllipticCurve.twistIndexLE
- theorem
EllipticCurveRank.RatEllipticCurve.goldfeld_conjecture.variants.squarefreeDocumented declaration: squarefree sorry line 220 sourceSource documentation
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$. The twist $E^d$ only depends on the class of $d$ modulo nonzero rational squares, and the squarefree integers are a system of representatives of these classes. (They need not give pairwise non-isomorphic curves: if $B = 0$ then $E^{-d} = E^d$.)
depends on sorry what this means
Statement uses: EllipticCurveRank.RatEllipticCurve,
Nat,Or,Eq,OfNat.ofNat,Filter.Tendsto,Real,HDiv.hDiv,Set.ncard,Int,Set.ofPred,And,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.twistIndexLE,Squarefree, EllipticCurveRank.RatEllipticCurve.twistRank,Filter.atTop,nhdsProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous34 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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)) := by …Mentions: EllipticCurveRank.RatEllipticCurve, EllipticCurveRank.RatEllipticCurve.twistIndexLE
- theorem
EllipticCurveRank.RatEllipticCurve.unbounded_rank_conjectureFrom [PPVW2016], Section 3.1: "from the mid-1960s to the present, it seems that most experts conjectured unboundedness." sorry line 231 sourceSource documentation
From [PPVW2016], Section 3.1: "from the mid-1960s to the present, it seems that most experts conjectured unboundedness."
depends on sorry what this means
Statement uses:
Nat,Exists, EllipticCurveRank.RatEllipticCurve,LE.le, EllipticCurveRank.RatEllipticCurve.rankProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat3 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem unbounded_rank_conjecture (n : ℕ) : ∃ E : RatEllipticCurve, n ≤ E.rank := by …
Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.finite_twentyone_lt_finrankFrom [PPVW2016], Section 8.2: "Our heuristic predicts (a) All but finitely many E ∈ ℰ satisfy rk E(ℚ) ≤ 21" sorry line 240 sourceSource documentation
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.
depends on sorry what this means
Statement uses:
Set.Finite, EllipticCurveRank.RatEllipticCurve,Set.ofPred,LT.lt,Nat,OfNat.ofNat, EllipticCurveRank.RatEllipticCurve.rankProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem finite_twentyone_lt_finrank : {E : RatEllipticCurve | 21 < E.rank}.Finite := by …Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.rank_height_count_asymptotic[PPVW2016] 8.2(b): for 1 ≤ r ≤ 20, the number of elliptic curves over ℚ with rank at leastrand naïve height at mostHis asymptoticallyH ^ ((21 - r) / 24 + o(1))sorry line 255 sourceSource documentation
[PPVW2016] 8.2(b): for 1 ≤ r ≤ 20, the number of elliptic curves over ℚ with rank at least
rand naïve height at mostHis asymptoticallyH ^ ((21 - r) / 24 + o(1)). Note: ℰ_H in 8.2(b) should be ℰ_{≤H}, see the statement of Theorem 7.3.3. Whenr = 1, the exponent is20 / 24 = 5 / 6, which agrees with the exponent incard_heightLE_div_pow_five_div_six_tenstoand is consistent withhalf_rank_zero_and_half_rank_one. The equality is asserted only for largeH, matching theo(1)above: it cannot hold at smallH, becauseheightLE His empty forH ≤ 3(naiveHeight E ≤ 3forcesA = B = 0, which bothΔ_ne_zeroandreducedexclude) and consists only of the two rank-zero curvesy² = x³ ± xfor4 ≤ H ≤ 26, while the right hand side isReal.rpowand hence strictly positive.depends on sorry what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Exists,Real,And,Filter.Tendsto,Filter.atTop,nhds,Filter.Eventually,Eq,Set.ncard, EllipticCurveRank.RatEllipticCurve,Set.ofPred,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.heightLE, EllipticCurveRank.RatEllipticCurve.rank,HPow.hPow,HAdd.hAddand 2 moreProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous46 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem rank_height_count_asymptotic (r : ℕ) (h₁ : 1 ≤ r) (h₂ : r ≤ 20) : ∃ f : ℕ → ℝ, atTop.Tendsto f (𝓝 0) ∧ ∀ᶠ H : ℕ in atTop, {E ∈ heightLE H | r ≤ E.rank}.ncard = (H : ℝ) ^ ((21 - r) / 24 + f H) := by … - theorem
EllipticCurveRank.RatEllipticCurve.twentyone_le_rank_height_count_asymptotic[PPVW2016] 8.2(c): the number of elliptic curves over ℚ with rank ≥ 21 and naïve height at mostHis asymptotically at mostH ^ o(1)sorry line 264 sourceSource documentation
[PPVW2016] 8.2(c): the number of elliptic curves over ℚ with rank ≥ 21 and naïve height at most
His asymptotically at mostH ^ o(1).depends on sorry what this means
Statement uses:
Exists,Nat,Real,And,Filter.Tendsto,Filter.atTop,nhds,OfNat.ofNat,LT.lt,LE.le,Set.ncard, EllipticCurveRank.RatEllipticCurve,Set.ofPred,Membership.mem,Set, EllipticCurveRank.RatEllipticCurve.heightLE, EllipticCurveRank.RatEllipticCurve.rank,HPow.hPowProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous30 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
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 := by … - theorem
EllipticCurveRank.RatEllipticCurve.exists_rank_ge_thirtyoneIs there an elliptic curve over ℚ of rank at least 31? sorry line 275 sourceSource documentation
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.claudeAlpogeHowell31below.depends on sorry what this means
Statement uses:
Exists, EllipticCurveRank.RatEllipticCurve,LE.le,Nat,OfNat.ofNat, EllipticCurveRank.RatEllipticCurve.rankProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem exists_rank_ge_thirtyone : ∃ E : RatEllipticCurve, 31 ≤ E.rank := by …
Mentions: EllipticCurveRank.RatEllipticCurve
- theorem
EllipticCurveRank.RatEllipticCurve.exists_rank_ge_thirtytwoIs there an elliptic curve over ℚ of rank at least 32? sorry line 283 sourceSource documentation
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.
depends on sorry what this means
Statement uses:
Exists, EllipticCurveRank.RatEllipticCurve,LE.le,Nat,OfNat.ofNat, EllipticCurveRank.RatEllipticCurve.rankProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem exists_rank_ge_thirtytwo : ∃ E : RatEllipticCurve, 32 ≤ E.rank := by …
Mentions: EllipticCurveRank.RatEllipticCurve
- def
EllipticCurveRank.WeierstrassCurve.claudeAlpogeHowell31The elliptic curve over ℚ of rank at least 31 found by Claude, Levent Alpöge and Ava Howell in 2026 line 295 sourceSource documentation
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.
standard axioms: Quot.sound, propext what this means
Statement uses:
WeierstrassCurve.Affine,RatProof uses:
WeierstrassCurve.mk,OfNat.ofNat,Neg.neg2 instances, coercions and auxiliary constants left out.
def claudeAlpogeHowell31 : Affine ℚ where …
- theorem
EllipticCurveRank.WeierstrassCurve.Δ_claudeAlpogeHowell31See https://elliptic-rank.icarm.cloud/curve/302 line 307 sourceSource documentation
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Rat,WeierstrassCurve.Δ, EllipticCurveRank.WeierstrassCurve.claudeAlpogeHowell31,HMul.hMul,HPow.hPow,Nat,OfNat.ofNatProof uses:
Eq.mpr,WeierstrassCurve.mk,Neg.neg,id,congrArg,WeierstrassCurve.Affine,EllipticCurveRank.WeierstrassCurve.claudeAlpogeHowell31.eq_1,HAdd.hAdd,HSub.hSub,WeierstrassCurve.b₂,WeierstrassCurve.b₈,WeierstrassCurve.b₄,WeierstrassCurve.b₆,WeierstrassCurve.Δ.eq_1,WeierstrassCurve.a₁,WeierstrassCurve.a₂,WeierstrassCurve.b₂.eq_1,WeierstrassCurve.a₄,WeierstrassCurve.a₃,WeierstrassCurve.b₄.eq_1and 29 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem Δ_claudeAlpogeHowell31 : claudeAlpogeHowell31.Δ = 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 := by … - instance
EllipticCurveRank.WeierstrassCurve.(instance at line 315)line 315 source - theorem
EllipticCurveRank.WeierstrassCurve.thirtyone_le_rank_claudeAlpogeHowell31The rank of the Claude–Alpöge–Howell curve is at least 31 sorry line 320 sourceSource documentation
The rank of the Claude–Alpöge–Howell curve is at least 31.
depends on sorry what this means
Statement uses:
LE.le,Nat,OfNat.ofNat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.claudeAlpogeHowell31Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem thirtyone_le_rank_claudeAlpogeHowell31 : 31 ≤ finrank ℤ claudeAlpogeHowell31.Point := by …
- theorem
EllipticCurveRank.WeierstrassCurve.rank_claudeAlpogeHowell31The rank of the Claude–Alpöge–Howell curve is exactly 31 sorry line 328 sourceSource documentation
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.
depends on sorry what this means
Statement uses:
Eq,Nat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.claudeAlpogeHowell31,OfNat.ofNatProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem rank_claudeAlpogeHowell31 : finrank ℤ claudeAlpogeHowell31.Point = 31 := by …
- def
EllipticCurveRank.WeierstrassCurve.ranksunbounded30The elliptic curve over ℚ of rank at least 30 found by userranksunboundedin 2026 line 335 sourceSource documentation
The elliptic curve over ℚ of rank at least 30 found by user
ranksunboundedin 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.standard axioms: Quot.sound, propext what this means
Statement uses:
WeierstrassCurve.Affine,RatProof uses:
WeierstrassCurve.mk,OfNat.ofNat,Neg.neg2 instances, coercions and auxiliary constants left out.
def ranksunbounded30 : Affine ℚ where …
- theorem
EllipticCurveRank.WeierstrassCurve.Δ_ranksunbounded30See https://elliptic-rank.icarm.cloud/curve/273 line 344 sourceSource documentation
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Rat,WeierstrassCurve.Δ, EllipticCurveRank.WeierstrassCurve.ranksunbounded30,HMul.hMul,Neg.neg,HPow.hPow,Nat,OfNat.ofNatProof uses:
Eq.mpr,WeierstrassCurve.mk,id,congrArg,WeierstrassCurve.Affine,EllipticCurveRank.WeierstrassCurve.ranksunbounded30.eq_1,HAdd.hAdd,HSub.hSub,WeierstrassCurve.b₂,WeierstrassCurve.b₈,WeierstrassCurve.b₄,WeierstrassCurve.b₆,WeierstrassCurve.Δ.eq_1,WeierstrassCurve.a₁,WeierstrassCurve.a₂,WeierstrassCurve.b₂.eq_1,WeierstrassCurve.a₄,WeierstrassCurve.a₃,WeierstrassCurve.b₄.eq_1,WeierstrassCurve.a₆and 28 more55 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem Δ_ranksunbounded30 : ranksunbounded30.Δ = -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 := by … - instance
EllipticCurveRank.WeierstrassCurve.(instance at line 351)line 351 source - theorem
EllipticCurveRank.WeierstrassCurve.thirty_le_rank_ranksunbounded30The rank of the ranksunbounded curve is at least 30 sorry line 356 sourceSource documentation
The rank of the ranksunbounded curve is at least 30.
depends on sorry what this means
Statement uses:
LE.le,Nat,OfNat.ofNat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.ranksunbounded30Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem thirty_le_rank_ranksunbounded30 : 30 ≤ finrank ℤ ranksunbounded30.Point := by …
- theorem
EllipticCurveRank.WeierstrassCurve.rank_ranksunbounded30The rank of the ranksunbounded curve is exactly 30 sorry line 361 sourceSource documentation
The rank of the ranksunbounded curve is exactly 30.
depends on sorry what this means
Statement uses:
Eq,Nat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.ranksunbounded30,OfNat.ofNatProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem rank_ranksunbounded30 : finrank ℤ ranksunbounded30.Point = 30 := by …
- def
EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29The elliptic curve over ℚ of rank at least 29 found by Elkies and Klagsbrun in 2024 line 366 sourceSource documentation
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.
standard axioms: Quot.sound, propext what this means
Statement uses:
WeierstrassCurve.Affine,RatProof uses:
WeierstrassCurve.mk,OfNat.ofNat,Neg.neg2 instances, coercions and auxiliary constants left out.
def elkiesKlagsbrun29 : Affine ℚ where …
- theorem
EllipticCurveRank.WeierstrassCurve.Δ_elkiesKlagsbrun29See https://mathoverflow.net/a/478050 line 375 sourceSource documentation
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Rat,WeierstrassCurve.Δ, EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29,HMul.hMul,Neg.neg,HPow.hPow,Nat,OfNat.ofNatProof uses:
Eq.mpr,WeierstrassCurve.mk,id,congrArg,WeierstrassCurve.Affine,EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29.eq_1,HAdd.hAdd,HSub.hSub,WeierstrassCurve.b₂,WeierstrassCurve.b₈,WeierstrassCurve.b₄,WeierstrassCurve.b₆,WeierstrassCurve.Δ.eq_1,WeierstrassCurve.a₁,WeierstrassCurve.a₂,WeierstrassCurve.b₂.eq_1,WeierstrassCurve.a₄,WeierstrassCurve.a₃,WeierstrassCurve.b₄.eq_1,WeierstrassCurve.a₆and 28 more55 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem Δ_elkiesKlagsbrun29 : elkiesKlagsbrun29.Δ = -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 := by … - instance
EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29IsEllipticline 383 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
WeierstrassCurve.IsElliptic,Rat, EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29Proof uses:
WeierstrassCurve.IsElliptic.mk,Eq.mpr,IsUnit,WeierstrassCurve.Δ,HMul.hMul,Neg.neg,HPow.hPow,Nat,OfNat.ofNat,id,Eq,congrArg, EllipticCurveRank.WeierstrassCurve.Δ_elkiesKlagsbrun29,of_eq_true,Eq.trans,Ne,True,Mathlib.Meta.NormNum.IsInt.neg_to_eq,Mathlib.Meta.NormNum.isInt_mul,Int.negOfNatand 16 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
EllipticCurveRank.WeierstrassCurve.twentynine_le_rank_elkiesKlagsbrun29The rank of the Elkies-Klagsbrun curve is at least 29 sorry line 388 sourceSource documentation
The rank of the Elkies-Klagsbrun curve is at least 29.
depends on sorry what this means
Statement uses:
LE.le,Nat,OfNat.ofNat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem twentynine_le_rank_elkiesKlagsbrun29 : 29 ≤ finrank ℤ elkiesKlagsbrun29.Point := by …
- theorem
EllipticCurveRank.WeierstrassCurve.rank_elkiesKlagsbrun29The rank of the Elkies-Klagsbrun curve is exactly 29 sorry line 393 sourceSource documentation
The rank of the Elkies-Klagsbrun curve is exactly 29.
depends on sorry what this means
Statement uses:
Eq,Nat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.elkiesKlagsbrun29,OfNat.ofNatProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem rank_elkiesKlagsbrun29 : finrank ℤ elkiesKlagsbrun29.Point = 29 := by …
- def
EllipticCurveRank.WeierstrassCurve.elkies28The elliptic curve over ℚ of rank at least 28 found by Elkies in 2006 line 398 sourceSource documentation
The elliptic curve over ℚ of rank at least 28 found by Elkies in 2006. It has rank exactly 28 assuming the generalized Riemann hypothesis.
standard axioms: Quot.sound, propext what this means
Statement uses:
WeierstrassCurve.Affine,RatProof uses:
WeierstrassCurve.mk,OfNat.ofNat,Neg.neg2 instances, coercions and auxiliary constants left out.
def elkies28 : Affine ℚ where …
- theorem
EllipticCurveRank.WeierstrassCurve.Δ_elkies28See https://mathoverflow.net/a/478050 line 407 sourceSource documentation
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Rat,WeierstrassCurve.Δ, EllipticCurveRank.WeierstrassCurve.elkies28,HMul.hMul,HPow.hPow,Nat,OfNat.ofNatProof uses:
Eq.mpr,WeierstrassCurve.mk,Neg.neg,id,congrArg,WeierstrassCurve.Affine,EllipticCurveRank.WeierstrassCurve.elkies28.eq_1,HAdd.hAdd,HSub.hSub,WeierstrassCurve.b₂,WeierstrassCurve.b₈,WeierstrassCurve.b₄,WeierstrassCurve.b₆,WeierstrassCurve.Δ.eq_1,WeierstrassCurve.a₁,WeierstrassCurve.a₂,WeierstrassCurve.b₂.eq_1,WeierstrassCurve.a₄,WeierstrassCurve.a₃,WeierstrassCurve.b₄.eq_1and 28 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem Δ_elkies28 : elkies28.Δ = 2 ^ 15 * 3 ^ 6 * 5 ^ 6 * 7 ^ 4 * 11 ^ 2 * 13 ^ 4 * 17 ^ 5 * 19 ^ 3 * 48463 * 20650099 * 315574902691581877528345013999136728634663121 * 376018840263193489397987439236873583997122096511452343225772113000611087671413 := by … - instance
EllipticCurveRank.WeierstrassCurve.elkies28IsEllipticline 414 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
WeierstrassCurve.IsElliptic,Rat, EllipticCurveRank.WeierstrassCurve.elkies28Proof uses:
WeierstrassCurve.IsElliptic.mk,Eq.mpr,IsUnit,WeierstrassCurve.Δ,HMul.hMul,HPow.hPow,Nat,OfNat.ofNat,id,Eq,congrArg, EllipticCurveRank.WeierstrassCurve.Δ_elkies28,of_eq_true,Eq.trans,Ne,True,Mathlib.Meta.NormNum.IsNat.to_eq,Mathlib.Meta.NormNum.isNat_mul,Eq.refl,Mathlib.Meta.NormNum.isNat_powand 10 more32 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
EllipticCurveRank.WeierstrassCurve.twentyeight_le_rank_elkies28The rank of the Elkies curve is at least 28 sorry line 419 sourceSource documentation
The rank of the Elkies curve is at least 28.
depends on sorry what this means
Statement uses:
LE.le,Nat,OfNat.ofNat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.elkies28Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem twentyeight_le_rank_elkies28 : 28 ≤ finrank ℤ elkies28.Point := by …
- theorem
EllipticCurveRank.WeierstrassCurve.rank_elkies28The rank of the Elkies curve is exactly 28 sorry line 424 sourceSource documentation
The rank of the Elkies curve is exactly 28.
depends on sorry what this means
Statement uses:
Eq,Nat,Module.finrank,Int,WeierstrassCurve.Affine.Point,Rat, EllipticCurveRank.WeierstrassCurve.elkies28,OfNat.ofNatProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem rank_elkies28 : finrank ℤ elkies28.Point = 28 := by …