numerical-evidence.md

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

5900 bytes, as of the version from 2026-11-02 06:56. Recorded here, not run.

# Numerical build evidence for T671

Coordinated skill manifest:
`agents/runs/20261102T064212Z-build-skills/manifest.json`.
The archived local and live skills were both read and match SHA-256
`a2b28d9953264d7b0ca62663785c2952190c5be6d6d3597fd695d9a54d606278`.
The attached skill-evidence.json records their provenance. This is builder
verification, not the independent campaign critique or its argument verdict.

Environment: SageMath 10.9, Python 3.12.3, numberdb 0.1.10. Every Sage run used
agents/sage.sh. The generator initializes numberdb.sage before named imports.

## Numerical method and controls

The generator enumerates reduced positive definite integral binary quadratic
forms by integer inequalities, including imprimitive forms. Each nonzero
genus character is calculated from an integer represented by the form and
coprime to D, using the Kronecker symbol. Stabilizer orders are in PSL2(Z).
It evaluates the classical j with Arb modular_j at 768 bits and applies the
first four identity-class Faber polynomials to j-744.

Jenkins, section 5.1, equation (5.1) and Theorem 5.1, supplies integrality of
the trace divided by the positive sqrt(D), including nonfundamental -d and
shared primes. The coefficient ball must be finite, have radius <10^-110,
contain the candidate integer, and exclude its two neighbors. Thus rounding
a midpoint selects a candidate only; the theorem and interval certify it.
There is no guess of integrality from trailing zeros. All 556 coefficients
are nonzero at the selected arguments and are recorded as exact integers.

The largest coefficient-ball radius is <1.709e-134. Minimum relative accuracy
is 756 bits. The irrational trace is recomputed from the certified integer
and a positive ball square root, using numberdb.bits(100, losing=96), with
minimum measured relative accuracy 426 bits. numberdb's serializer verifies
that the ball supports the requested 100 significant digits. No floating
point result is wrapped in an interval to claim certification.

The independently implemented checker uses Sage BinaryQF representatives,
a separate character computation checking all represented integers from
[-4,4]^2 that are coprime to D, and J_m evaluated as an unnormalized sum of
Hecke translates of j-744. It evaluates j using modular lambda and
256*(1-lambda+lambda^2)^3/(lambda^2*(1-lambda)^2), at 1024 bits, rather than
calling modular_j. Shared Arb internals remain a limitation of this numerical
comparison; independent exact corpus and printed-source controls supplement
it. Every complex comparison first requires finite components and radii
<10^-150, so wide or nonfinite enclosures cannot pass as agreement.

Controls run before the comparisons: j(i)=1728, j((-1+i sqrt(3))/2)=0,
a deliberately false j(i)=1729, a radius-one ball, and a NaN ball. The
D=5, d=3 character signs are +1 and -1. A form divisible by 5 gets zero;
[5,5,1] gets +1 despite its leading coefficient sharing a factor with D.

## Checks completed before filling

* All 139 discriminant pairs, all 30 D, and the four subgroup counts
  84/32/13/10 agree with an independently enumerated squarefree criterion.
* Every reduced-form list agrees with Sage BinaryQF representatives.
* Both modular generators preserve every computed character.
* The weighted trace of the constant function vanishes for every pair.
* All 556 normalized traces agree with independently evaluated Hecke sums.
* 113 primitive Hilbert class polynomials, covering all actual CM
  discriminants and imprimitive reductions, agree coefficient by coefficient
  with frozen T129; this is 629 exact coefficient controls.
* All 13 rational CM values agree with T83, and 252 overlapping ordinary
  traces agree with T643. Both lists are frozen in companions.json.
* The m=2,3,4 Faber polynomials agree exactly with T635. Laurent principal
  parts at all four orders are checked using the exact T79 j coefficients.
* Zagier section 7 prints A_1(5,3)=-85995, A_1(8,4)=18473000, and
  A_1(5,15)=-292658282496; all three agree, including shared-prime cases.
* agents/table-build/dry_run.py passed exactness, prose and ring-import checks
  for every one of the 1112 entries. No exact-in-disguise finding appeared.
* Serialization produces exactly 1112 entries. The longest displayed value
  is 102 characters; the longest exact integer is 95 characters. Flat record
  YAML is 198585 bytes. The final document uses equivalent nested storage to
  avoid repeating the four parameter names on every row; the exact measured
  nested size is retained in serialization.json in the run artifacts.

The final live check uses checks.py --stored. It requires identical ordered
identities, exact equality for all coefficients, and containment of each
independent 1024-bit trace enclosure within its written decimal interval. It
also verifies conversion from the stored exact coefficient to that interval.
The run's separate readback logs and handoff record its actual outcome.

## Research evidence

Sources were read and archived as zagier.pdf, jenkins.pdf, and
andersen-duke.html in this run directory. Sage's numerical-fields reference
was also read. The direct FLINT documentation request returned HTTP 403;
Sage's documentation and the runnable implementations remained available.
The family issue and all eleven live companion documents were read through
the queue and authenticated NumberDB API. Text screening found no duplicate;
exact api/lookup searches for -85995 and 18473000 had no results. An irrational
sample search also found no result. Existing tags were verified via search
results, whose actual tag slugs use plus signs between words.

The argument-selection attachment explains the meaningful arithmetic families
and noncanonical product/order cutoffs. The independent critic must assess
those choices separately from these numerical checks. No actor in this build
publishes, reviews or offers the draft.