Descent & Rank Bounds¶
Descent is used primarily to obtain a rigorous upper bound on Mordell–Weil rank.
It is most valuable after you already have a meaningful rigorous lower bound.
Rank interval¶
Rank Hunter tracks a rigorous interval
The lower bound usually comes from exact independent points.
The upper bound comes from a rigorous rank/descent method.
When the two agree, exact rank is known.
Normal CLI path¶
sage -python -m rank42.cli rank-bounds \
--db rank42.db \
--curve-id 123 \
--engine auto \
--timeout 300
The command emits a machine-readable result marker:
Engines¶
The 0.9.2 rank pipeline supports engine selection:
Core also contains an optional eclib-rh integration when available, but public Rank Hunter does not require eclib-rh to operate.
auto¶
Automatic mode is PARI-first.
If PARI closes the interval, no deeper fallback is necessary.
If PARI times out/errors, the release can use lighter/available fallbacks and, when explicitly escalated or necessary, mwrank.
The runner also remembers some deterministic engine-limit failures to avoid blindly repeating the same impossible call.
pari¶
Use when you specifically want the PARI rank-bound path.
mwrank¶
Use when you intentionally want the mwrank path and accept its cost/size constraints.
Important options¶
From rank42.cli rank-bounds:
| Option | Meaning |
|---|---|
--curve-id |
retained curve id |
--engine |
auto, pari, or mwrank |
--timeout |
selected/PARI hard timeout |
--mwrank-timeout |
mwrank hard timeout |
--pari-stack-max-gib |
maximum PARI stack after overflow retry |
--escalate |
request deeper fallback chain |
--force |
ignore compatible cached evidence |
Use --help for the exact release parser.
Caching¶
Compatible completed/inconclusive evidence can be reused or recognized so expensive work is not repeated without reason.
Use --force only when you intentionally want to recompute despite compatible cached state.
Stronger research attacks¶
The source tree includes additional research commands such as:
and:
Treat these as targeted research tools, not mandatory steps for every curve.
Reading results¶
Rigorous upper returned¶
If the engine returns a rigorous upper bound \(u\), Rank Hunter records it as rank evidence and reduces the live curve interval.
Exact rank¶
If the live lower and upper bounds agree, Rank Hunter can record exact rank.
Timeout¶
A timeout is inconclusive.
Do not publish “rank equals lower bound” because the upper-bound engine ran out of time.
Error¶
An engine error is operational/implementation failure, not mathematical evidence.
Evidence conflict¶
If a rigorous upper appears below the stored rigorous lower, Rank Hunter marks an inconsistent evidence state.
Investigate the exact model and provenance before trusting either side.
Descent that returns points¶
Some descent/covering engines can also produce rational points.
Returned points still go through exact reconstruction and independence certification before raising the lower bound.
The engine's own reported lower bound is not automatically trusted as a Rank Hunter lower-bound promotion.
When to escalate¶
Escalate when:
- the lower bound is significant;
- closing exact rank matters;
- the previous engine failed for a reason a different engine can avoid;
- the curve/model size remains feasible.
Do not escalate simply because the first engine timed out once on an unimportant curve.