Moving sofa: related mathematical developments #
Gerver.Foundations.Development001.
Moving sofa: related mathematical developments #
Gerver.AreaCertificate.Gerver.Area.TrigEnclosure.
Exact rational certificate for the Gerver cap and niche areas #
This module carries the finite, kernel-checkable part of the rational area bounds for
Gerver's sofa: integer interval arithmetic at scale M = 10 ^ 30, certified enclosures of
the twenty-two direct parameters and of π, interval sine and cosine by the Taylor
recurrence, the grid of rotation angles, the five phase formulas, the support-contact fan
of the cap and the rectangle cover of the niche.
Everything here is computable and decide +kernel-checkable; the two closed numeric
conclusions capOK_true and nicheOK_true are the only facts the analytic layer in
MovingSofa.Gerver.Area needs from this module.
Integer interval arithmetic at scale 10 ^ 30 #
The kernel accelerates Int arithmetic but not Rat arithmetic, so the whole finite
calculation is carried out on pairs of integers denoting the interval [lo / M, hi / M].
The common denominator of every interval endpoint.
Equations
- MovingSofa.GerverAreaCert.M = 10 ^ 30
Instances For
Equations
Instances For
Kernel-cheap min on ℤ.
Instances For
Kernel-cheap max on ℤ.
Instances For
Outward enclosure of a / b for 0 < b.
Equations
- MovingSofa.GerverAreaCert.SI.ratI a b = { lo := a * MovingSofa.GerverAreaCert.M / b, hi := -(-(a * MovingSofa.GerverAreaCert.M) / b) }
Instances For
The exact interval [0, 0].
Equations
- MovingSofa.GerverAreaCert.SI.zero = { lo := 0, hi := 0 }
Instances For
The exact interval [1, 1].
Equations
Instances For
Interval multiplication: the extreme endpoint products, rounded outward.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplication by an integer.
Equations
- MovingSofa.GerverAreaCert.SI.imul k x = { lo := MovingSofa.GerverAreaCert.SI.imin (k * x.lo) (k * x.hi), hi := MovingSofa.GerverAreaCert.SI.imax (k * x.lo) (k * x.hi) }
Instances For
Real semantics and soundness #
A left fold of exact interval additions over an initial segment encloses the corresponding real sum.
A left fold of integer additions over an initial segment is the corresponding sum.
Certified enclosures of the twenty-two parameters and of π #
Enclosure of the direct parameter k₁₁.
Equations
- MovingSofa.GerverAreaCert.k11Z = { lo := -210322422072688751416285718490, hi := -210322422072688751416085718490 }
Instances For
Enclosure of the direct parameter k₁₂.
Equations
- MovingSofa.GerverAreaCert.k12Z = { lo := 249999999999999999999900000000, hi := 250000000000000000000100000000 }
Instances For
Enclosure of the direct parameter k₂₁.
Equations
- MovingSofa.GerverAreaCert.k21Z = { lo := -919179292771593322274796102890, hi := -919179292771593322274596102890 }
Instances For
Enclosure of the direct parameter k₂₂.
Equations
- MovingSofa.GerverAreaCert.k22Z = { lo := 472406619750805465181660762512, hi := 472406619750805465181860762512 }
Instances For
Enclosure of the direct parameter k₃₁.
Equations
- MovingSofa.GerverAreaCert.k31Z = { lo := -613763229430251668555014291320, hi := -613763229430251668554814291320 }
Instances For
Enclosure of the direct parameter k₃₂.
Equations
- MovingSofa.GerverAreaCert.k32Z = { lo := 889626479003221860726943050050, hi := 889626479003221860727143050050 }
Instances For
Enclosure of the direct parameter k₄₁.
Equations
- MovingSofa.GerverAreaCert.k41Z = { lo := -308347166088910014835232479740, hi := -308347166088910014835032479740 }
Instances For
Enclosure of the direct parameter k₄₂.
Equations
- MovingSofa.GerverAreaCert.k42Z = { lo := 472406619750805465181660762512, hi := 472406619750805465181860762512 }
Instances For
Enclosure of the direct parameter k₅₁.
Equations
- MovingSofa.GerverAreaCert.k51Z = { lo := -1017204036787814585693742864150, hi := -1017204036787814585693542864150 }
Instances For
Enclosure of the direct parameter k₅₂.
Equations
- MovingSofa.GerverAreaCert.k52Z = { lo := 249999999999999999999900000000, hi := 250000000000000000000100000000 }
Instances For
Enclosure of the direct parameter a₁.
Equations
- MovingSofa.GerverAreaCert.a1Z = { lo := 1210322422072688751416085718500, hi := 1210322422072688751416285718500 }
Instances For
Enclosure of the direct parameter a₂.
Equations
- MovingSofa.GerverAreaCert.a2Z = { lo := -250000000000000000000100000000, hi := -249999999999999999999900000000 }
Instances For
Enclosure of the direct parameter b₁.
Equations
- MovingSofa.GerverAreaCert.b1Z = { lo := -527624598026784624160603809370, hi := -527624598026784624160403809370 }
Instances For
Enclosure of the direct parameter b₂.
Equations
- MovingSofa.GerverAreaCert.b2Z = { lo := 920258385160637622893605795010, hi := 920258385160637622893805795010 }
Instances For
Enclosure of the direct parameter c₁.
Equations
- MovingSofa.GerverAreaCert.c1Z = { lo := 626045522848465867552229310386, hi := 626045522848465867552429310386 }
Instances For
Enclosure of the direct parameter c₂.
Equations
- MovingSofa.GerverAreaCert.c2Z = { lo := -944750803946430751679092381250, hi := -944750803946430751678892381250 }
Instances For
Enclosure of the direct parameter d₁.
Equations
- MovingSofa.GerverAreaCert.d1Z = { lo := 1313022761424232933776064655200, hi := 1313022761424232933776264655200 }
Instances For
Enclosure of the direct parameter d₂.
Equations
- MovingSofa.GerverAreaCert.d2Z = { lo := -525382670414554437202936294305, hi := -525382670414554437202736294305 }
Instances For
Enclosure of the direct parameter e₁.
Equations
- MovingSofa.GerverAreaCert.e1Z = { lo := 1210322422072688751416085718500, hi := 1210322422072688751416285718500 }
Instances For
Enclosure of the direct parameter e₂.
Equations
- MovingSofa.GerverAreaCert.e2Z = { lo := 249999999999999999999900000000, hi := 250000000000000000000100000000 }
Instances For
Enclosure of the first stage angle φ.
Equations
- MovingSofa.GerverAreaCert.phiZ = { lo := 39177364790083641863217874980, hi := 39177364790083641863217875500 }
Instances For
Enclosure of the second stage angle θ.
Equations
- MovingSofa.GerverAreaCert.thetaZ = { lo := 681301509382724894473855754540, hi := 681301509382724894473855759660 }
Instances For
The integer enclosure of π, from the certified Machin arctangent sums.
Equations
- MovingSofa.GerverAreaCert.piZ = { lo := 3141592653589793238462643383279, hi := 3141592653589793238462643383280 }
Instances For
The integer enclosure of π / 2.
Instances For
The parameter enclosures are the certified box rows #
Every one of the twenty-two integer enclosures contains the corresponding certified Gerver parameter.
The integer enclosure of π.
Sine and cosine by the degree-41/40 Taylor recurrence #
trigIter z t n = (Sₙ, Cₙ, ∑_{k ≤ n} Sₖ, ∑_{k ≤ n} Cₖ) where Sₖ and Cₖ enclose the
k-th signed sine and cosine Taylor terms and z encloses t ^ 2.
Equations
- One or more equations did not get rendered due to their size.
- MovingSofa.GerverAreaCert.trigIter z t 0 = (t, MovingSofa.GerverAreaCert.SI.one, t, MovingSofa.GerverAreaCert.SI.one)
Instances For
Stage endpoints and the uniform grid #
Number of subintervals per analytic stage.
Equations
Instances For
Integer enclosures of the six stage endpoints 0, φ, θ, η, τ, π / 2, constant past 5.
Equations
- MovingSofa.GerverAreaCert.endZ 0 = MovingSofa.GerverAreaCert.SI.zero
- MovingSofa.GerverAreaCert.endZ 1 = MovingSofa.GerverAreaCert.phiZ
- MovingSofa.GerverAreaCert.endZ 2 = MovingSofa.GerverAreaCert.thetaZ
- MovingSofa.GerverAreaCert.endZ 3 = MovingSofa.GerverAreaCert.piHalfZ.sub MovingSofa.GerverAreaCert.thetaZ
- MovingSofa.GerverAreaCert.endZ 4 = MovingSofa.GerverAreaCert.piHalfZ.sub MovingSofa.GerverAreaCert.phiZ
- MovingSofa.GerverAreaCert.endZ x✝ = MovingSofa.GerverAreaCert.piHalfZ
Instances For
The m-th grid angle, 0 ≤ m ≤ 5 * NN.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The analytic branch that the piecewise definitions select at the m-th grid angle.
Equations
Instances For
The five phase formulas and the four contact curves #
The contact point at grid index m, evaluated on the branch the definitions select.
Equations
Instances For
Cap: the ordered support contacts and their fan shoelace sum #
Number of listed support contacts feeding the fan, excluding the anchor.
Instances For
Grid index at fan position i.
Equations
Instances For
Both coordinates of the contact listed at fan position i.
Equations
Instances For
The fan anchor L = C (π / 2).
Equations
Instances For
The i-th fan determinant over the anchor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Twice the signed area of the fan polygon: the shoelace sum of the listed contacts over the anchor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Niche: the seven roof pieces and their covering rectangles #
The seven roof pieces as (kind, stage, traversed forwards?).
Equations
- MovingSofa.GerverAreaCert.rowData 0 = (4, 1, true)
- MovingSofa.GerverAreaCert.rowData 1 = (4, 2, true)
- MovingSofa.GerverAreaCert.rowData 2 = (0, 4, false)
- MovingSofa.GerverAreaCert.rowData 3 = (0, 3, false)
- MovingSofa.GerverAreaCert.rowData 4 = (0, 2, false)
- MovingSofa.GerverAreaCert.rowData 5 = (2, 4, true)
- MovingSofa.GerverAreaCert.rowData x✝ = (2, 5, true)
Instances For
Contact kind traced by roof piece r.
Equations
Instances For
Analytic stage traced by roof piece r.
Equations
Instances For
Whether roof piece r is traversed in increasing time.
Equations
Instances For
Grid index of the left end of the j-th subinterval of row r.
Equations
Instances For
Left horizontal bound of the covering rectangle of (r, j).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Right horizontal bound of the covering rectangle of (r, j).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Height bound of the covering rectangle of (r, j): the branch evaluation over the
whole subinterval, widened to cover the left endpoint, which sits on the previous branch.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Area of the covering rectangle of (r, j), in units of 1 / M ^ 2.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Total covering area of row r, in units of 1 / M ^ 2.
Equations
- MovingSofa.GerverAreaCert.rowSumZ r = List.foldl (fun (acc : ℤ) (j : ℕ) => acc + MovingSofa.GerverAreaCert.rectAreaZ r j) 0 (List.range MovingSofa.GerverAreaCert.NN)
Instances For
Total covering area of the 7 * NN rectangles, in units of 1 / M ^ 2.
Equations
- MovingSofa.GerverAreaCert.nicheSumZ = List.foldl (fun (acc : ℤ) (r : ℕ) => acc + MovingSofa.GerverAreaCert.rowSumZ r) 0 (List.range 7)
Instances For
The two decidable numeric conclusions #
The niche check passes, by kernel reduction.
The cap check passes, by kernel reduction.
Interval enclosures of the sine and cosine at scale M #
The certificate evaluates the sine and the cosine by the interval Taylor recurrence
GerverAreaCert.trigIter, truncated at degree 41 and 40 and widened by one unit at scale
M = 10 ^ 30. trigZ_sound is the soundness statement of that evaluator on [0, 2]: the
recurrence encloses the signed Taylor terms and their partial sums (contains_trigIter),
the alternating brackets of Real.sin and Real.cos control the truncation error by the
first omitted term, and 2 ^ 41 * 10 ^ 30 ≤ 41! and 2 ^ 40 * 10 ^ 30 ≤ 40! justify the
one-unit widening.
Sine and cosine enclosures #
The integer term recurrence encloses the signed Taylor terms and their partial
sums. Pure interval arithmetic: an induction on n using the SI soundness lemmas.
Soundness of the executable sine/cosine enclosure on [0, 2].