The search region in the proofs #
The search intervals of the model, pairs of doubles (Ratpoints.Double), over the values of their
ends (Ratpoints.domainValues) and their bits (Ratpoints.domainBits); the ranges of the
numerators of a denominator b that a list of intervals over values (Ratpoints.InIntervals) gives
within -H, …, H (Ratpoints.Sieve.numeratorRanges), with the ends ⌈b l⌉ and ⌊b u⌋ clamped,
which the bounds of the search intervals of a run give to the sieve of one denominator
(Ratpoints.Sieve.RangesFor); and the normalized options of a search
(Ratpoints.Options.normalize) in the terms of the specification of the search region
(Ratpoints.IsFullBox, Ratpoints.denominatorBound).
Main definitions #
Ratpoints.domainValues,Ratpoints.domainBits: the values and the bits of the ends of the search intervals of the model.Ratpoints.Sieve.lowNumerator,Ratpoints.Sieve.highNumerator,Ratpoints.Sieve.numeratorRanges: the ranges of the numerators of a denominator in a list of intervals.
Main statements #
Ratpoints.Sieve.inRanges_numeratorRanges: a numerator|a| ≤ Hlies in one of the ranges exactly whena / blies in one of the intervals.Ratpoints.Sieve.pairwise_numeratorRanges,Ratpoints.Sieve.le_add_one_of_mem_numeratorRanges: the ranges of search intervals are increasing and strictly apart, each empty at most by one.Ratpoints.Options.reverse_normalize,Ratpoints.Options.toNat_bHigh_normalize,Ratpoints.Options.bLow_normalize_le_iff: the normalized options in the terms of the specification.
The values of the ends of the search intervals dom of the model (Ratpoints.doubleValue).
Equations
- Ratpoints.domainValues dom = List.map (fun (i : Ratpoints.Double × Ratpoints.Double) => (Ratpoints.doubleValue i.1.bits, Ratpoints.doubleValue i.2.bits)) dom
Instances For
The bits of the ends of the search intervals dom of the model.
Equations
- Ratpoints.domainBits dom = List.map (fun (i : Ratpoints.Double × Ratpoints.Double) => (i.1.bits, i.2.bits)) dom
Instances For
A normalized pair (x, z) of height at most H lies, with any y, in the search region of the
whole box.
The least numerator of the denominator b in an interval with the lower end x, within
-H, …, H + 1: ⌈b x⌉ clamped, -H for x = ⊥ and H + 1 for x = ⊤.
Equations
Instances For
The largest numerator of the denominator b in an interval with the upper end x, within
-H - 1, …, H: ⌊b x⌋ clamped, -H - 1 for x = ⊥ and H for x = ⊤.
Equations
Instances For
The ranges of the numerators of the denominator b in the intervals D, within -H, …, H
but for the clamps: an integer |a| ≤ H lies in the range of an interval exactly when a / b
lies in the interval (Ratpoints.Sieve.inRanges_numeratorRanges).
Equations
- Ratpoints.Sieve.numeratorRanges b H D = List.map (fun (i : WithBotTop ℚ × WithBotTop ℚ) => (Ratpoints.Sieve.lowNumerator b H i.1, Ratpoints.Sieve.highNumerator b H i.2)) D
Instances For
The range of an interval [l, u] with l ≤ u is empty at most by one: ⌈b l⌉ ≤ ⌊b u⌋ + 1,
and the clamps keep it.
The range of an interval ending below the start of another ends below the start of its range:
⌊b u⌋ < ⌈b l⌉ for u < l, and the clamps keep it.
The normalized options #
A denominator z ≤ H lies below the normalized largest denominator exactly when it satisfies
the bound of the search region of the specification (Ratpoints.InRegion).
The depth of the Sturm step of the normalized options is at most 55
(Ratpoints.Double.mantDig + 2).