diff --git a/research/central-factor-packed/README.md b/research/central-factor-packed/README.md index baac432520..911271a420 100644 --- a/research/central-factor-packed/README.md +++ b/research/central-factor-packed/README.md @@ -34,9 +34,15 @@ python3 -I -B research/central-factor-packed/verify.py Expected: `status` is `PASS_CENTRAL_FACTOR_PACKED`, scope is `complete_historical_audit`, `coefficients_checked` is `6760000`, and `receipt_sha256` is -`ffae0f0a22863718e3134a924592dcf4b05e919223323ba536c587c592bfe6a1`. -The printed duration varies. This receipt is byte-identical to the original -full audit; the benchmark/result wrapper is a new, explicitly separate record. +`2aabc7e3ed38a27902f88244b80bed579e8ec2158c6ad3253f1c654c79b299e0`. +The printed duration varies. This receipt is byte-identical to the current +`certificates/dyadic-central-factor.json`. That file differs from the +package's original receipt +`ffae0f0a22863718e3134a924592dcf4b05e919223323ba536c587c592bfe6a1` +only in three embedded `source_sha256` entries +(`scripts/exclusion_circuit.py`, `scripts/experiments/complex_centers.py`, +`scripts/experiments/disjoint_tensor.py`). `BENCHMARK.json` and +`VALIDATION.json` keep the pre-refresh measurements against `ffae0f0a`. ```sh python3 -I -B research/central-factor-packed/test_packed.py @@ -123,8 +129,22 @@ fresh-process benchmark pairs for each scope. ## Pins, integration and limitations `SOURCES.json` pins 43 inherited source, test, proof, fixture and upstream files -to the exact base, plus the adapter implementation. All inherited pins were -compared with that base's Git blobs. It includes the original upstream commit +plus the adapter implementation. The package base remains +`47481c89fd30a43f8f882eb4b391e89c29273fd0`. On 2026-10-20 five live pins were +refreshed to canonical main `bb4bccbf42844d2801487450727c2f63e10d1d0f`, because +`admit_sources()` otherwise rejects before the audit and turns +`.github/workflows/community-batch952.yml` red for every `research/r439-*` +pull request: + +| Path | Why the bytes moved | +|---|---| +| `certificates/dyadic-central-factor.json` | Embedded source hashes below; no coefficient field changed | +| `scripts/experiments/complex_centers.py` | #2194 packed `verify_factor` (`f0c58a2ca`) | +| `scripts/experiments/disjoint_tensor.py` | #2001 `frame_data` unions (`3e917c5cc`) | +| `scripts/exclusion_circuit.py` | #2001 embedding masks (`d7d8bfcb0`) | +| `scripts/shared_point_circuit.py` | #2054 frame-support cache (`ff889ccd7`); not a certificate source | + +The other 38 file pins are unchanged. It includes the original upstream commit `adc7f1241b42e322a6451854ab7e4b4c146bf78a`. Source admission happens before imports; the replay also rejects an unlisted imported repository script. diff --git a/research/central-factor-packed/SOURCES.json b/research/central-factor-packed/SOURCES.json index 6ec15fd1c9..fc396b23d4 100644 --- a/research/central-factor-packed/SOURCES.json +++ b/research/central-factor-packed/SOURCES.json @@ -6,7 +6,7 @@ "base_commit": "47481c89fd30a43f8f882eb4b391e89c29273fd0", "files": { "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", - "certificates/dyadic-central-factor.json": "ffae0f0a22863718e3134a924592dcf4b05e919223323ba536c587c592bfe6a1", + "certificates/dyadic-central-factor.json": "2aabc7e3ed38a27902f88244b80bed579e8ec2158c6ad3253f1c654c79b299e0", "docs/research/dyadic-central-factor.md": "e97b1dfe11b5eaebacf3f910131e13bcad586ea5fc1af05db23c00ae0eea5c11", "notes/complex-compression.tex": "10312815290c7bb8ef4db153e30fba13c032bf17ccaf991a34f1aa6340405a0d", "notes/disjoint-tensor-compression.tex": "528cba56872313b8cd63ff11f523a399dfb3c85cae1a764110ae9d26ac9151ac", @@ -15,16 +15,16 @@ "scripts/binary_phase_frames.py": "4148cfa313cf050ed25296e8db36d35871520b8318fd086c7d1facf0c6af67d7", "scripts/certify.py": "2348d95008276c5d5764f7e028c3918e484582cd589bd4d9b82919161745e53e", "scripts/complex_compression.py": "9b6f758a5985ba5d9fdd726fe6556b3d3b4bd9d98aaf8ba06a7bb58093c4c504", - "scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0", - "scripts/experiments/complex_centers.py": "3744396587d729253d80980f6310b56e7bf0ea21b165bd178d0d6d4c49faf2e2", - "scripts/experiments/disjoint_tensor.py": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8", + "scripts/exclusion_circuit.py": "f9fbcd6e85e442cbd0926ac0887414e20735b2dc923d2d5822c803ceb46726d3", + "scripts/experiments/complex_centers.py": "39cfcf869dc4a00dd30a1e91efb986074371621dad14b390cf1053f6aeea79bf", + "scripts/experiments/disjoint_tensor.py": "23763a4b6086fb3d19f9282fff5c118f53fa52e7a7f17da1bde990bd4cf8b6ac", "scripts/general_network_guard.py": "790a2064449afdbffd6dbd4adbcf4a28eaf41931ce7134e4a4e8766f3764270c", "scripts/incidence_rectangles.py": "5240fd33dcc3096f5685d10ca360186cad36b355a00d55686a4ea4449417d00e", "scripts/paired_exclusion_circuit.py": "8f05f04cf06217befd6d0ee0f2d7d0c5c5eb32cfab8c9a8ca7917fd6d620b7d2", "scripts/paired_network.py": "991223dc3c1374284c361ed017e42bf732dd971fa0bea2be2282cfb18257b3f7", "scripts/prepare_layers.py": "a6e2adc612f264b1c0e51d18ce6315de9ae5e2ae2420aa22e99a22d8bf304947", "scripts/search_network.py": "3a4faa5037d9b8e7ca5828afac193a96b6966a8b114f14937921795b24ec4f6a", - "scripts/shared_point_circuit.py": "c9bb7a5df92d260a4e3ad532b53e26936730d7c93f7facfb0784957c1e81c8ba", + "scripts/shared_point_circuit.py": "360d9bffc0f55315fe294789b72c71c79e0991524555b3a5f42a2ca504d7da95", "scripts/shared_point_network.py": "a85e7f0d8c42d6a27e3846308571ca324a1824ac5c2d59e4daa5c7673c33c697", "tests/test_complex_centers.py": "cae650330565f0a4465029ab8a645b14e6ed7b9be6442b0db1d0914beeaeb700", "tests/test_complex_compression.py": "e22e0a339fad8ce2f73312eb7e47a762360f8c1c78122cdd8e0dc85c5fbce99f", diff --git a/research/central-factor-packed/VALIDATION.md b/research/central-factor-packed/VALIDATION.md index 4ab5b7570a..bfce414bf4 100644 --- a/research/central-factor-packed/VALIDATION.md +++ b/research/central-factor-packed/VALIDATION.md @@ -19,11 +19,20 @@ are retained in `VALIDATION.json`; benchmark samples are in `BENCHMARK.json`. | `make selected-record-check` | PR890 exact value, original inventory and proof supplements pass | | Source admission | All 43 inherited pins match base Git objects and refreshed main | -Every complete replay's certificate SHA256 is +Every complete replay recorded in this October 13 receipt has certificate SHA256 `ffae0f0a22863718e3134a924592dcf4b05e919223323ba536c587c592bfe6a1`. Timing metadata belongs to the separate wrapper, not that certificate. The three benchmarked implementation hashes still match the submitted code. +A later pin refresh, 2026-10-20 on main `bb4bccbf42844d2801487450727c2f63e10d1d0f`, +rebinds five drifted files so admission matches the tree +`community-batch952.yml` checks. The replay on CPython 3.12.3 then reports +`receipt_sha256` +`2aabc7e3ed38a27902f88244b80bed579e8ec2158c6ad3253f1c654c79b299e0` +(1.901 s, `coefficients_checked` 6760000). That digest is the current +certificate. It differs from `ffae0f0a` only in three embedded source hashes. +`VALIDATION.json` and `BENCHMARK.json` are left as the October 13 record. + Controls cover structural/type violations, wrong signs, missing first/last gather columns, large signed scatter values, equivalent accepted factors, wrong scalar charges despite correct products, a deliberately faulty radix,