docs: propagate kernel/sub-battery counts to canonical surfaces

Reviewer-flagged errata in the dav1dprometheus comm doc surfaced
two real drifts in canonical docs that needed correction:

docs/_source/pi-star.rst:
  - "Fifteen concrete π*'s" -> "Sixteen". The table was missing
    combinatorics@v1 (#000032). Authoritative count comes from
    arborist.pi_star.registry.REGISTRY itself, with a note saying
    so. Each entry called out as behaviorally immutable, with
    forward link to docs/spec-methodology.md section 1.1 where the
    versioning rule is canonical.

docs/dav1dprometheus-update-2026-05-09.md:
  - Reverts a regression introduced in the previous errata pass
    (455fc10). The reviewer counted 5 axes x 5 = 20 sub-batteries,
    but 5T carries 6 (legacy 'transfer' from SQD-whitepaper plus
    the canonical Dav1DPrometheus five, kept side-by-side per
    ticket #000024). Total is 21, not 20. Top-of-doc revision
    note records the correction, body section restores the 21
    count with the explicit 5+6+5+5 explanation.

Other reviewer points are already canonical (kernel-version
immutability is in docs/spec-methodology.md section 1.1) or are
editorial-only and don't require canonical-doc changes.

Tested:
  - len(REGISTRY) == 16 (verified live)
  - bench/batteries/runner.py enumerates 21 sub-batteries
    (5+6+5+5 per file naming under bench/fixtures/5{s,t,f,r}/)
This commit is contained in:
russell@unturf.com 2026-05-09 17:27:02 -04:00
parent 455fc10c2a
commit 0e4f050e8c
No known key found for this signature in database
2 changed files with 52 additions and 31 deletions

View file

@ -11,28 +11,38 @@ the equivalence-class identity.
Registry overview
-----------------
Lookup is by ``name@version`` key. **Fifteen** concrete π*'s ship
Lookup is by ``name@version`` key. **Sixteen** concrete π*'s ship
today; the registry has no remaining reserved stubs.
================================ ================= =====================================================
Key Domain Status
================================ ================= =====================================================
``wikitext-base@v1`` text Wikitext → plain prose
``claim-lattice@v1`` text Claim lines → JSON parsed-claim list
``code-py-ast@v1`` code Python source → canonical AST S-expression
``arithmetic@v1`` arithmetic Expression → exact rational ``num/den`` (SQD §14.1)
``logic-kernel@v1`` logic Boolean expression → canonical CNF (SQD §14.3)
``time-series-quantized@v1`` time-series JSON sample array → quantized integer vector (SQD §13.5)
``tabular-pinned@v1`` tabular JSON-rows → pinned-schema canonical bytes
``algebra-symbolic@v1`` symbolic-algebra SymPy ``expand + srepr`` (#000030 Phase 1)
``algebra-symbolic-simplified@v1`` symbolic-algebra SymPy ``simplify + srepr`` — collapses trig identities
``calculus-derivative@v1`` calculus ``sp.diff`` re-canonicalized through algebra-symbolic
``calculus-integral@v1`` calculus ``sp.integrate`` + unevaluated-Integral sentinel
``calculus-limit@v1`` calculus ``sp.limit`` + ±∞/complex-infinity sentinels
``calculus-series@v1`` calculus Truncated Taylor / Maclaurin (drops ``O(x**n)``)
``linear-algebra@v1`` linear-algebra RREF / det / eigenvalues / inverse via ``{op, matrix}``
``function-sampled@v1`` function-sampled SymPy expr → quantized integer vector (bridge to time-series)
================================ ================= =====================================================
================================== ================== =====================================================
Key Domain Status
================================== ================== =====================================================
``wikitext-base@v1`` text Wikitext → plain prose
``claim-lattice@v1`` text Claim lines → JSON parsed-claim list
``code-py-ast@v1`` code Python source → canonical AST S-expression
``arithmetic@v1`` arithmetic Expression → exact rational ``num/den`` (SQD §14.1)
``logic-kernel@v1`` logic Boolean expression → canonical CNF (SQD §14.3)
``time-series-quantized@v1`` time-series JSON sample array → quantized integer vector (SQD §13.5)
``tabular-pinned@v1`` tabular JSON-rows → pinned-schema canonical bytes
``algebra-symbolic@v1`` symbolic-algebra SymPy ``expand + srepr`` (#000030 Phase 1)
``algebra-symbolic-simplified@v1`` symbolic-algebra SymPy ``simplify + srepr`` — collapses trig identities
``calculus-derivative@v1`` calculus ``sp.diff`` re-canonicalized through algebra-symbolic
``calculus-integral@v1`` calculus ``sp.integrate`` + unevaluated-Integral sentinel
``calculus-limit@v1`` calculus ``sp.limit`` + ±∞/complex-infinity sentinels
``calculus-series@v1`` calculus Truncated Taylor / Maclaurin (drops ``O(x**n)``)
``linear-algebra@v1`` linear-algebra RREF / det / eigenvalues / inverse via ``{op, matrix}``
``function-sampled@v1`` function-sampled SymPy expr → quantized integer vector (bridge to time-series)
``combinatorics@v1`` combinatorics Pure-integer counting kernel (#000032; fails closed on non-non-negative-integer results)
================================== ================== =====================================================
Authoritative count comes from
:data:`arborist.pi_star.registry.REGISTRY` itself; if this table
drifts from ``len(REGISTRY)`` the table is wrong, not the registry.
Each entry is **behaviorally immutable** — any byte-affecting
change to a registered ``name@version`` requires a new version
key, never an in-place patch (otherwise prior persisted canonical-
cache rows become semantically unstable). Full versioning rule
in ``docs/spec-methodology.md`` §1.1.
The math π*'s (algebra-symbolic / calculus-* / linear-algebra /
function-sampled) gate on the optional ``[math]`` extra: