Finite-degree errors for every nonvertex q3 face
Keep the uniform-simplex design, evaluation and noise assumptions of Theory of the skeleton risk. Fix an integer \(s\geq2\) and put \(M=s+3\). The positive diagonal construction in Positive diagonal formulas for nonvertex risk already proves
and in particular
The following adds an explicit error valid beyond a stated degree. It concerns sample-size-asymptotic risk coefficients, not finite-sample risk.
Theorem 30 (Finite-D relative error at every q3 source-face size)
Put \(K_s=(25s+358)/4\) and \(B_s=(25s^2-69s+106)/4\). For every integer \(s\geq2,D\geq2(s-1)\),
For integers \(k\geq2\) with \(2^k\geq2(s-1)\), the error is at most \((K_s(k+1)+B_s)/2^k\) at every \(D\geq2^k\). Thus each fixed source-face size has a certified \(O(\log D/D)\) remainder. The displayed inequality explicitly records its dependence on \(s\); it does not assert a new joint asymptotic for growing \(s,D\) or cover codimension four and above.
Theorem 31 (Finite-D relative error for the q3 edge and triangle)
For both \(s=2,3\) and every integer \(D\geq4\),
For every integer \(k\geq2\), the relative error is therefore at most \((109(k+1)+31)/2^k\) at every integer \(D\geq2^k\). In particular \(D\geq262144\) suffices for relative error below one percent for both families. These are sufficient, not optimal, thresholds. This is a specialization of the preceding theorem.
The constants below are analytic majorants. They are not fitted to computed risks or inferred from a finite degree scan.
Uniform bounds and one discrete derivative
Write \(d_j=\delta_3(j)\), and use the harmonic expression in (52). For every integer \(j\geq0\),
Here are bounds including \(j=0\), so no hidden small-index exception is needed. Put \(f_j=j/(j+2)\), \(N_j=H_j^2-f_jH_j\), and \(Q_j=(j+1)(j+2)(j+3)\). Cauchy–Schwarz and \(\sum_{r\geq1}r^{-2}\leq2\) give \(0\leq N_j\leq H_j^2\leq2j\). Also \(H_j\leq j\) and \(f_{j+1}-f_j=2/((j+2)(j+3))\). Expanding the numerator difference gives \(|N_{j+1}-N_j|\leq5\).
Split \(d_j/6=A_j+B_j+C_j\) into the three displayed harmonic terms. Since \(Q_j^{-1}-Q_{j+1}^{-1}=3/(Q_j(j+4))\),
The last term decreases because all its positive denominator factors increase. This proves the difference bound with \(6(11+5+1)=102\). The three terms themselves are at most \(2/(j+1)^2\), \(2/(j+1)^2\), and \(1/(6(j+1)^2)\), respectively, proving the bound with 25.
An exact inverse-factorial deficit moment
Let \(0\leq L\leq D-s\), \(B=2D+s-L-1\), \(T=L+B=2D+s-1\), and
For \(L\geq1\), replace \((L-j)\binom Lj=L\binom{L-1}j\) and \(\binom Bj/(j+1)_3=\binom{B+3}{j+3}/(B+1)_3\). Vandermonde then proves the exact identity
At \(L=0\) both sides are zero. Since \(B\geq L\) and \(B+3\geq D+2s+2\), the right side is at most \(4L/((L+1)(L+2)(D+2s+2))\). Telescoping the discrete derivative gives
Consequently, with \(n=D-s\),
The exact sum here uses \(L/((L+1)(L+2))=-1/(L+1)+2/(L+2)\).
Angular weights, omitted tail, and normalization
Put \(S=\sum_{j\geq0}d_j=12(\zeta(2)-\zeta(3))\). It is finite by the positive diagonal theorem. Direct rational arithmetic in the harmonic expression gives \(\sum_{j=0}^7d_j=8568671/2116800>4\), hence \(S>4\). The positive-square bound and the integral test give
Normalize the angular weights by their limiting factor \(D^{s-2}/(s-2)!\). The resulting reindexed weight is
The empty product is one at \(s=2\); at \(s=3\) the weight is \((D-L-2)/D\). Every factor lies in \([0,1]\) because \(L\leq D-s\) and \(r\leq s-1\). The deficit inequality is the finite product inequality \(1-\prod(1-x_r)\leq\sum x_r\). Since \((s-2)L+s(s-1)/2-1=(s-2)(L+1)+(s-1)(s-2)/2\),
Here the finite inverse-square sum is at most two. Define \(U_D=\sum_{L=0}^nw_L\mathbb E d_J\). The triangle inequality and (59) show
The exact positive coefficient formula is
Thus its relative error is at most \(1-P_s(D)+E_s(D)/4\). For \(D\geq2(s-1)\), use \(H_{D-s+1}\leq1+\log D\), \(1/(D-s+1)\leq2/D\), and \(1-P_s(D)\leq3(s+1)/(2D)\). These give precisely the stated \(K_s,B_s\), proving the general theorem. For \(s=2\) the resulting bound is \((102(1+\log D)+17)/D\); for \(s=3\) it is \(((433/4)(1+\log D)+31)/D\). Both are bounded by (56). Finally \((109(1+\log x)+31)/x\) decreases on \(x\geq1\), and \(\log2<1\), proving the dyadic all-tail statement.
Exact rational certification and independent checks
tools.risk_research.nonvertex_q3_error supports every integer
\(s\geq2\) and evaluates these bounds without
generating the double sum. It uses the sharper harmonic-sum expression
in (59), replacing
\(H_m\) by \(1+\lceil\log_2m\rceil\), evaluated by integer
bit length. It also applies the dyadic bound at the largest power of two
below the requested degree when it is at least \(2(s-1)\).
The smaller of these two valid bounds is
still a rigorous bound. The inactive prefix \(D<s\) is exactly zero;
its normalized relative error is one. Active degrees below the dyadic domain use
the unsimplified bound above.
For the leading constant the summand \((n-1)/n^3\) is positive and
decreasing on \(n\geq2\). The tail after \(n=N\) lies between
the integrals from \(N+1\) and from \(N\), whose values are
\(1/t-1/(2t^2)\). Rational interval multiplication with
\(\max(0,1-r)\) and \(1+r\) then encloses the finite-D
coefficient. The reported relative_error_bound concerns deviation
from the exact leading term; constant_terms separately controls the
uncertainty of the leading constant’s displayed interval.
$ .venv/bin/python -m tools.risk_research.nonvertex_q3_error --face-size 2 --degree 262144 --constant-terms 64 --relative-target 1/100 --output .research/skeleton-risk/q3-edge-error.json
$ .venv/bin/python -m tools.risk_research.nonvertex_q3_error --verify .research/skeleton-risk/q3-edge-error.json
The target selects an all-tail threshold, not an exact crossover or the
smallest degree at which an individual coefficient is accurate. Saved
records bind the source and proof files; verification reconstructs the
complete record using its own saved options, including nondefault terms
and target. Verification can optionally write an identical checked record
with --output; conflicting generation overrides are rejected. Scalar JSON
types and duplicate keys are checked. Hashes normalize CRLF to LF;
the before/after source guard compares raw bytes. Failed computation or
verification preserves any previous destination through atomic output.
The tests independently check the deficit moment, diagonal majorants, normalization, endpoint behavior, original scalar/Gram coefficients and held-out integer-kernel values. Optional native FLINT/Arb checks evaluate the original positive double sum and known zeta constant separately. These finite checks validate the implementation; the displayed inequalities prove the infinite degree tail.
The CLI rejects outputs resolving to evaluator or proof sources, including
symlink aliases, before calculation and immediately before replacement.
The writer uses that validated canonical parent and the original leaf name,
so retargeting the original parent alias cannot redirect the write.
Large rational integers and JSON integer parameters use local bounded
decimal chunks; parameter fields remain JSON numbers. Replay uses the
same local decoder, and no process-wide integer conversion limit is changed.
Ordinary decimal or rational --relative-target syntax remains supported.