WO-14 — Grover re-run on the built libraries¶
8 October 2026 · Branch wo-14-grover from local wo-08-rad.
Owner resolved item 14 (option C); WO-14 implementation proceeds.
Resolved oracle scope¶
WORK-ORDERS.md requires C++ librl-generated oracle tables at w=2, 3, 4,
matching phase3_sat_attacks.digest_w. The built C++ library exposes
rl_v3_128(Bytes) for the production 64-bit word width; its public API has no
word-width parameter, and the step implementation uses four uint64_t words.
The Python digest_w function is a separately width-scaled toy construction.
Calling the production library at widths 2, 3, or 4 is therefore undefined by
the current interface, and a separate C++ toy implementation would not be a
test of librl as the work order currently states.
Owner decision 8 Oct 2026, item 14: keep the w=2, 3, 4 toy-width oracle Python-only
and cross-check the built librl against the Python reference at w=64 only.
PHASE3-RESULTS.md already contains section L, so section M is the next section.
The owner set the Rad analysis at Z_base=41 and directed that Claude correct the
WO-14 row in WORK-ORDERS.md; this build does not edit that file.
No dependencies were installed. GROVER-TEST-HANDOFF.md and the existing
grover_rl_test.py were restored from the parked pre-worktree material. The
remaining implementation and checks are recorded below as they are completed.
Implementation and validation¶
The script now leaves the w=2, 3, 4 truth-table checks Python-only and invokes
the release rl_cli for the w=64 cross-check. It also runs separate Python
table-oracle tests for a given Rad prefix and a zero-prefix toy stamp, and
records the Z_base=41 / trigger-Z=48 query-cost estimates. Existing reversible
circuit checks and the RL-only resource estimate remain in the same experiment.
The obsolete nonexistent refracting_light_128.py provenance entry was
removed; fingerprints now include the C++ API, implementation and CLI.
Build and test commands:
cmake --preset release PASS
cmake --build --preset release PASS
ctest --preset release PASS, 16/16
cmake --preset sanitize PASS
cmake --build --preset sanitize PASS, no work required
ctest --preset sanitize PASS, 16/16
Experiment command:
python3 -B grover_rl_test.py --seed 20261007 --input-qubits 12 --rl-cli build/release/rl_cli
Final run passed in 36.16 seconds and wrote
phase3-runs/grover-20261008T160000599814Z.json. At w=64, C++ librl agreed
with both Python references on all 4,133 messages (4,096 exhaustive 12-bit
inputs plus 37 vectors, boundary/random, and commitment-stamp inputs), with
zero mismatches. All 16 recorded 18-bit stamp inputs passed. Toy widths w=2,
3,4 each ran five equality targets plus a given-Rad-prefix and toy stamp
oracle; all measured probability curves matched the exact Grover formula.
The reversible circuit checks and full w=64 resource estimate also completed.
The cost estimate at Z_base=41 records BHT scale 13,003.99 queries; chosen
41-bit Rad-prefix Grover scale 1,482,910.40 and first-peak approximation
1,164,675.10; and 18-bit stamp Grover scale 512 and first-peak approximation
402.12. The next trigger tier Z=48 is included. These are black-box query
estimates, not quantum measurements; the finite S=2^20 puzzle can have no pair.
PHASE3-RESULTS.md section M contains the full interpretation and limitations.
During development, one assertion incorrectly required the first rounded
Grover peak to be the global maximum across two periods. Per-iteration
probabilities already matched the exact expression; integer-rounded later
peaks may be marginally higher. The assertion now checks the first-peak index
is in range while retaining formula validation on every point. The final run
then passed. No changes were made to WORK-ORDERS.md; Claude is correcting its
WO-14 row per owner direction. No push or merge was performed.