The denominators of the search #
The search of the polynomial with the coefficient list c of degree d visits the denominators
from bLow to the largest denominator bHigh in the order of the loop of its shape
(Ratpoints.searchDens): the divisors of the leading coefficient times squares when d is odd,
|c_d| ≠ 1 and the divisor set-up up to bHigh succeeds, and bLow, …, bHigh otherwise. These are
the denominators of the specification of the order up to bHigh (Ratpoints.searchDenominators)
from bLow on, each once, and their points, with the points at infinity, are a permutation of the
brute-force reference restricted to these denominators.
Main definitions #
Ratpoints.searchDens: the denominators of the search, in the order of its loop.
Main statements #
Ratpoints.perm_filter_bruteForce_append_flatMap_searchDens: the points at infinity and those of the denominators of the search frombLowtobHighare a permutation of the brute-force reference restricted to these denominators.Ratpoints.searchDens_one_eq_searchDenominators: the denominators of the search from1on are those of the specification of the order up tobHigh;Ratpoints.searchDens_eq_filter: frombLowon, they are those from1on that are at leastbLow.
Proof #
The divisor shape visits each denominator of a point once
(Ratpoints.exists_eq_mul_mul_of_sq_eq_binaryForm_of_odd,
Ratpoints.Setup.mem_iff_of_setupUs1_eq_some, Ratpoints.Sieve.mem_squares1Dens_iff,
Ratpoints.Sieve.nodup_squares1Dens), so that its list gives a permutation of the reference
(List.perm_flatMap_of_nodup); the divisor set-up succeeds exactly when the specification of the
order takes the divisor shape, with the divisors of Ratpoints.binaryDivisors
(Ratpoints.Setup.map_snd_run_setupUs1).
The denominators of the search of the polynomial with the coefficient list c of degree d,
from bLow to the largest denominator bHigh, in the order of its loop: the divisors of the
leading coefficient times squares (Ratpoints.Sieve.squares1Dens) when d is odd, |c_d| ≠ 1
and the divisor set-up up to bHigh succeeds (Ratpoints.Setup.setupUs1), and bLow, …, bHigh
otherwise, of which the other shapes visit, in this order, those that their tests let through
(Ratpoints.Sieve.Shape).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The denominators of the search from bLow ≥ 1 are distinct: bLow, …, bHigh, or for odd degree
the products of the distinct squarefree divisors of the set-up with squares
(Ratpoints.Sieve.nodup_squares1Dens), and none for bHigh = 0.
The divisor shape visits each denominator of a point once, so that it gives a permutation of
the points of the denominators bLow, …, bHigh: the denominator of every point is s k ^ 2 with
s squarefree and dividing c_d, so one of the divisors of the set-up, and the shape lists each
such product once (List.perm_flatMap_of_nodup).
The points at infinity and those of the denominators of the search from bLow ≥ 1 to
bHigh ≤ H are a permutation of the brute-force reference restricted to the points at infinity and
the denominators from bLow to bHigh (Ratpoints.perm_flatMap_squares1Dens).
The denominators of the search from bLow ≥ 1 on are those from 1 on that are at least
bLow, for each shape by its listing (Ratpoints.Sieve.squares1Dens_eq_filter).
The denominators of the search of the polynomial with the coefficient list c of its degree
from 1 to bHigh ≥ 1 are those of the specification of the order
(Ratpoints.searchDenominators): the divisor set-up succeeds exactly when the specification takes
the divisor shape, with the divisors of Ratpoints.binaryDivisors
(Ratpoints.Setup.map_snd_run_setupUs1).