Skip to content

Call lver_to_energy_bound with the signature it has - #203

Open
Chessing234 wants to merge 2 commits into
teorth:mainfrom
Chessing234:fix-lver-energy-bound-callers
Open

Call lver_to_energy_bound with the signature it has#203
Chessing234 wants to merge 2 commits into
teorth:mainfrom
Chessing234:fix-lver-energy-bound-callers

Conversation

@Chessing234

Copy link
Copy Markdown
Contributor

lver_to_energy_bound(hypotheses, tau0) builds the tau0 <= tau <= 2 tau0 and 2 <= tau <= tau0 domains itself, but three call sites still pass the older (LV*, LV_zeta*, sigma_interval) triple and raise ValueError: Parameter hypotheses must be of type Hypothesis_Set. on the first line they reach. So derived.prove_heath_brown_energy_estimate, derived.prove_improved_heath_brown_energy_estimate and examples.zero_density_energy_examples cannot run at all, and the first two are the \derived \code{} links for two theorems in the zero density energy chapter.

Ported to the current API, dropping the domain/compute_LV_star blocks the callee now does itself, and printing the bounds as the prove_zero_density_energy_* functions do.

prove_improved_heath_brown_energy_estimate needed a judgement call: it built two hypothesis sets, one for LV* and one for LV_zeta*, which the current API cannot express. I merged them (k = 2..4, Huxley, Heath-Brown region 2a, the zeta large value estimate, both lver conversions). It reproduces the theorem the blueprint attaches to it, crossover point included:

A*(x) <= (18 - 19x)/(2(3x - 1)(1 - x))   on [3/4, sqrt(13889)/328 + 143/328)
A*(x) <= 4(10 - 9x)/(5(4x - 1)(1 - x))   on [sqrt(13889)/328 + 143/328, 4/5)

which is Theorem imp-hb-energy-bound. That function also passed sigma in [1/2, 1] while its tau0 was only defined on [3/4, 4/5]; the interval now comes from tau0.

prove_heath_brown_energy_estimate likewise reproduces hb-energy-bound:

A*(x) <= (10 - 11x)/((2 - x)(1 - x))     on [1/2, 2/3)
A*(x) <= (18 - 19x)/(2(2 - x)(1 - x))    on [2/3, 3/4)

and then the two improved branches above, ending at 12/(4x - 1) on [5/6, 25/28) — matching the theorem's third branch.

lver_to_energy_bound takes (hypotheses, tau0) and builds the
tau0 <= tau <= 2 tau0 and 2 <= tau <= tau0 domains itself, but three
call sites still pass the older (LV*, LV_zeta*, sigma_interval) triple.
Each of them raises "Parameter hypotheses must be of type
Hypothesis_Set" straight away, so prove_heath_brown_energy_estimate and
zero_density_energy_examples cannot run at all.

Pass the hypothesis set and tau0, and drop the domain and LV* blocks the
callee now does itself. Both parts of prove_heath_brown_energy_estimate
also print their bounds, as the prove_zero_density_energy_* functions do.
This one built two hypothesis sets - one for LV*, a second for
LV_zeta* - and passed both regions to lver_to_energy_bound, which no
longer accepts them. The current API derives both from a single set, so
merge them: the LV* set (k = 2..4, Huxley, Heath-Brown region 2a) plus
the zeta large value estimate the second set added, with both lver
conversions.

The result matches the theorem the blueprint attaches to this function,
including the crossover point:

  A*(x) <= (18 - 19x)/(2(3x - 1)(1 - x))    on [3/4, sqrt(13889)/328 + 143/328)
  A*(x) <= 4(10 - 9x)/(5(4x - 1)(1 - x))    on [sqrt(13889)/328 + 143/328, 4/5)

The old code also passed sigma in [1/2, 1] while tau0 was only defined on
[3/4, 4/5]; the interval now comes from tau0 itself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant