lessons-20261110T005551Z-build.md

back to table · edit · history · where entries came from · files · download

2134 bytes, as of the version from 2026-11-10 01:14 (current). Recorded here, not run.

## A library's analytic flag can certify the wrong branch-cut domain

What happened: the paired-log J series and an independently rearranged Fourier
series agreed beyond 120 significant digits. The square-lattice relation to D
also agreed. An Arb Mahler integral using
`z.arccosh(analytic=analytic)` disagreed at 2.46e-97 in J, although its reported
radius was about 7e-140. The nonzero polynomial integral control 1/3 passed.
At 600 working bits the false quadrature enclosure moved to an error near
6e-136; increasing precision did not establish its claimed bound.

The cause was identified in the installed Sage source:
`sage/rings/complex_arb.pyx`, `ComplexBall.arccosh`, checks
`arb_gt_neg_one(acb_realref(self.value))` in its analytic branch guard.
The principal acosh branch cut extends to +1, not -1. Thus a finite callback
answer did not certify analyticity on the balls used by the integrator.
This is a Sage wrapper issue, not evidence that the defining J series or its
explicit tail bound is wrong.

What the skill says now: require a nonzero known control, resolve disagreements,
and check finite narrow enclosures. Those rules led to the problem but a
polynomial control did not exercise the branch-cut handling.

What it should say: for certified quadrature, the callback must enclose the
function and correctly reject analytic queries crossing any branch cut. Check
that condition explicitly when inverse functions are composed, and add a
control that exercises the same branch handling. A narrow finite ball returned
by a library is not enough when its analytic callback contract is violated.

Evidence: T701; `external-checks-3.log`, `integral-diagnosis.log`,
`callback-diagnosis.log`, and `acosh-source.log`. In the final checks.py,
analytic queries are rejected unless the whole image ball has Re(z)>1.
That integral agrees with an independently bounded Mahler constant-term series,
with the J q-series, and with the Bloch value. The alternative implementation
log(z+sqrt(z-1)*sqrt(z+1)), with branch checks on both square roots and the log,
also agreed in `callback-diagnosis.log`. No source or skill was edited.