# Numerical evidence for T689

This is the build-stage record, not an independent critique or acceptance.
The governing policy archive is
`agents/runs/20261109T113247Z-build-skills/manifest.json`, attached as
`skill-manifest.json`. Both local/live skill digests are
`886390324dd1971e381a43cf3b46b822ab0bc67d62f31d8481e29ec79556746b`;
the copied manifest digest is
`c879ba3e40020535135932a0ac7d93e894d04b267cf416aa702c3c96617ec363`.

## Exact computation

`generate.py` computes the harmonic factorial periods in Sage QQ. It forms
K(x)=kappa/((1-Cx)F(x)^2(1+x(G/F)'(x))^3), then solves
x(q)=q exp(-(G/F)(x(q))) by formal fixed-point iteration. Each iteration
stabilizes another coefficient; composition checks q(x(q))=q to the working
order. The resulting coefficients of K(q) determine integer GV values by
triangular Lambert-series extraction. There are no floating-point coefficients
or rounded inputs. Final values are Sage integers, not padded decimals; all
digits are exact. The 100-significant-digit approximation target therefore
does not apply.

The generator's first 20 coefficients were unchanged when the working order
increased from 24 to 28, for every target. All 100 outputs passed the shared
`exactness` and `names_its_rings` checks. The required `dry_run.py` run passed.
Its measurement was 100 entries, longest 62 characters at multidegree 5,
degree 20, and 7.8 KB for its serialized block estimate. `measure` in the
independent harness used tuple keys and estimated 7.07 KB; these are different
label encodings of the same 100 entries, not conflicting value lengths.

## Separate implementations and external controls

`checks.py` does not call the generator arithmetic to produce expected values.
It uses Python Fraction and products in the nilpotent parameter epsilon modulo
epsilon^3 to obtain the first three Frobenius coefficient series. After
subtracting (G/F)^2/2 from the regular second period divided by F, it uses
Lagrange inversion to change variables and two logarithmic derivatives to
obtain the Yukawa coefficients. Möbius inversion yields the expected GV
integers, rather than using the generator's triangular divisor subtraction.
All 100 GV and underlying GW coefficients agree exactly. These computations
share the mirror theorem; they do not give a new proof of that theorem.

The geometric controls are independent of period computation:

* 18 documented GV localization values: degrees 1 through 3 for every target,
  and degree 4 for (5), (2,4), (3,3).
* 17 documented GW localization values: degrees 1 through 3 for every target,
  and degree 4 for (5), (2,4).
* Five line counts from the top Chern class of the sum of Sym^l S^* on
  Gr(2,r+4), integrated by the two-variable coefficient rule.

The Grassmannian method first returns 27 for a cubic surface and 2875 for the
quintic threefold. Arithmetic controls also check convolution, division,
exponential coefficients and the Möbius function before any table comparison.
Macaulay2 is not installed in this environment. Its documented localization
outputs were checked, but its implementation was not rerun.

The complete classification is independently enumerated as partitions of 4.
Enumeration is checked against all five targets in the specified order and
all degrees 1 through 20 without duplicates. For each target, 25 holomorphic
and first-logarithmic coefficients match the corresponding T679/T680
hypergeometric templates after z=Cx. The scale constants and extra half
parameter for (2,4) agree with their live conventions.

The archived live T688 document agrees with all 100 GW coefficients. Both
multiple-cover formulas and the Lambert coefficients were checked across the
whole stored degree range, not just the prime or low degrees.

`offline-evidence.json` contains complete values and per-target outcomes.
The software was SageMath 10.9, Python 3.12.3, numberdb 0.1.10. All Sage runs
used `agents/sage.sh`. The first check-harness attempt failed on QQ(string)
initialization in the modular Sage environment before comparisons; it was
replaced by construction from exact integer numerator and denominator. No
numerical disagreement was encountered. The failed attempt is preserved in
the run artifacts as `offline-attempt-1.log`.

After submission, `postwrite-evidence.json` records exact checks against every
stored row, the live T688 relation, and `Generator.verify(sample=None)`.
The draft's API audit and attachment hashes are recorded separately. These
checks do not offer or review the draft; the next actor must perform its own
numerical and argument-selection critique.
