Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions certificates/disjoint-tensor-compression.json
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,8 @@
"scripts/audit_disjoint_tensor.py": "477db540e972b82751fac6a3a6d6e38fb4141e967261b1f9c260e2c686479a78",
"scripts/binary_phase_frames.py": "4148cfa313cf050ed25296e8db36d35871520b8318fd086c7d1facf0c6af67d7",
"scripts/complex_compression.py": "9b6f758a5985ba5d9fdd726fe6556b3d3b4bd9d98aaf8ba06a7bb58093c4c504",
"scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0",
"scripts/experiments/disjoint_tensor.py": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8"
"scripts/exclusion_circuit.py": "f9fbcd6e85e442cbd0926ac0887414e20735b2dc923d2d5822c803ceb46726d3",
"scripts/experiments/disjoint_tensor.py": "085600fc922ae167b5981505e1a5caba4d1c1df15482f61d83d2c086fa89eac1"
},
"status": "IMPROVED FINITE COMPLEX NETWORK; NO NEW MULTIPLICATION KAPPA",
"upstream_commit": "adc7f1241b42e322a6451854ab7e4b4c146bf78a"
Expand Down
4 changes: 2 additions & 2 deletions certificates/dyadic-central-factor.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@
"scripts/audit_complex_centers.py": "166b18f560cd0d520d23fa29ee8147e0ea056358c4268a466ec458195a97a960",
"scripts/binary_phase_frames.py": "4148cfa313cf050ed25296e8db36d35871520b8318fd086c7d1facf0c6af67d7",
"scripts/complex_compression.py": "9b6f758a5985ba5d9fdd726fe6556b3d3b4bd9d98aaf8ba06a7bb58093c4c504",
"scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0",
"scripts/exclusion_circuit.py": "f9fbcd6e85e442cbd0926ac0887414e20735b2dc923d2d5822c803ceb46726d3",
"scripts/experiments/complex_centers.py": "3744396587d729253d80980f6310b56e7bf0ea21b165bd178d0d6d4c49faf2e2",
"scripts/experiments/disjoint_tensor.py": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8",
"scripts/experiments/disjoint_tensor.py": "085600fc922ae167b5981505e1a5caba4d1c1df15482f61d83d2c086fa89eac1",
"scripts/general_network_guard.py": "790a2064449afdbffd6dbd4adbcf4a28eaf41931ce7134e4a4e8766f3764270c"
},
"status": "COMPLEX INTERFACE HEADROOM; RETAINED KAPPA 2^-31",
Expand Down
2 changes: 1 addition & 1 deletion certificates/parity-side.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
"docs/research/parity-side.md": "75de20f8dcd3d1a2e2d19bc087eda50a6cc77027651f48198868426a80cd12f2",
"scripts/audit_parity_side.py": "7cbdd405ce11fa6f7ffcbef3811174f8685ad4640e9330176601d3b3d3e95390",
"scripts/binary_phase_frames.py": "4148cfa313cf050ed25296e8db36d35871520b8318fd086c7d1facf0c6af67d7",
"scripts/experiments/disjoint_tensor.py": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8",
"scripts/experiments/disjoint_tensor.py": "085600fc922ae167b5981505e1a5caba4d1c1df15482f61d83d2c086fa89eac1",
"scripts/experiments/mixed_point_circuit.py": "f509362b5031976a22af351fd158ae0b4520fa4f286a5176ec37023d672a7ddc",
"scripts/experiments/parity_phase_repair.py": "1f76f3b96ed556ed901835bd101d0e2588c997d2ed39bdfca097f0187aa86d40",
"scripts/experiments/parity_side.py": "1363ebf82d4c39e458e7bede8253688271008374db70ed4284df84253c8d092b"
Expand Down
2 changes: 1 addition & 1 deletion certificates/positive-side-core.json
Original file line number Diff line number Diff line change
Expand Up @@ -23101,7 +23101,7 @@
"source_sha256": {
"docs/research/positive-side-core.md": "fab9ff0ed8de56cb9c4c1587b65f956f706ab8f3b8afcb9212366218e227f49d",
"scripts/audit_positive_side.py": "b021aad944d8a6c023e57b1b48937854803bbb370240c93e0fe359d831c838c9",
"scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0",
"scripts/exclusion_circuit.py": "f9fbcd6e85e442cbd0926ac0887414e20735b2dc923d2d5822c803ceb46726d3",
"scripts/experiments/positive_side_core.py": "0d453ab7e869d2cf6a43d6865de82583edb390d3c75038271f0fc09e0f3828ba",
"scripts/experiments/rank_product_core.py": "7a91c1188c5d42e864a5d2e42397b09c435b526ae4f4210c44bf615de488708e",
"scripts/experiments/shared_core.py": "d3c59b61229956cb54ae1ef9145ed213abdf1ae743929de145a77c43656f01a8",
Expand Down
4 changes: 2 additions & 2 deletions certificates/ternary-side.json
Original file line number Diff line number Diff line change
Expand Up @@ -1563,8 +1563,8 @@
"notes/ternary-five-subsets.tex": "f8553a7ad7da9fcd85def67360f7c070ec6c15911c3310fca360d821e1ed1ccd",
"scripts/audit_ternary_side.py": "5e86566eee32031e1829d26ea17a7372e4802e2f7d76a2caa3ae16de3ab072c1",
"scripts/certify.py": "2348d95008276c5d5764f7e028c3918e484582cd589bd4d9b82919161745e53e",
"scripts/exclusion_circuit.py": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0",
"scripts/experiments/disjoint_tensor.py": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8",
"scripts/exclusion_circuit.py": "f9fbcd6e85e442cbd0926ac0887414e20735b2dc923d2d5822c803ceb46726d3",
"scripts/experiments/disjoint_tensor.py": "085600fc922ae167b5981505e1a5caba4d1c1df15482f61d83d2c086fa89eac1",
"scripts/experiments/prime_core.py": "080a89a2c91505b509068698542843c9d7af3cdec01b5c88972107dc9c688c62",
"scripts/experiments/rank_product_core.py": "7a91c1188c5d42e864a5d2e42397b09c435b526ae4f4210c44bf615de488708e",
"scripts/experiments/shared_core.py": "d3c59b61229956cb54ae1ef9145ed213abdf1ae743929de145a77c43656f01a8",
Expand Down
11 changes: 11 additions & 0 deletions research/disjoint-tensor-support-masks/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Notice — disjoint-tensor support masks

Douglas R. Colkitt authored the disjoint-tensor compression screen, the
`DisjointTensor` recurrence and embedding, and the original expected-support
coefficient checks consumed by this tooling package.

This package adds an equivalence-preserving closed-form rewrite of the
historical leave-intersecting-inputs expected-support genexpr inside
`DisjointTensor.verify`, with identical receipts and updated source pins only.

Prepared by Wentao Li with substantial AI assistance, under Apache-2.0.
107 changes: 107 additions & 0 deletions research/disjoint-tensor-support-masks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Faster DisjointTensor.verify output supports with identical receipts

**Tooling improvement; no new kappa.**
Landed with open [CrocSwap/integer-mult-bounds#2001](https://github.com/CrocSwap/integer-mult-bounds/pull/2001) so shared certificate JSON files carry both the `exclusion_circuit.py` and `disjoint_tensor.py` source pins without a merge conflict.
At base
`0b1cccf86e2f5132ed286a26ef0a681a495740ea`, the historical disjoint-tensor
checker (`scripts/experiments/disjoint_tensor.py:DisjointTensor.verify`) spends
most of its wall time on the leave-intersecting-inputs expected-support genexpr

```text
sum(1<<i for i,S in enumerate(self.inputs) if not S&T)
```

for every triple output `T` on the certificate circuit (`h=26`, 2600 inputs).

This change replaces that genexpr with an equivalent closed-form point-incidence
mask `full ^ OR_{p in T} vertex[p]`, keeps every support and embedding
`require`, and leaves `dag_sha256` unchanged. Only the source pin for
`scripts/experiments/disjoint_tensor.py` changes inside the four certificates
that bind that file.

## Reproduce

Python **3.12**, standard library only, from the repository root:

```sh
python3.12 -I -B research/disjoint-tensor-support-masks/verify.py
python3.12 -I -O -B research/disjoint-tensor-support-masks/verify.py
python3.12 -B scripts/research_package.py --package research/disjoint-tensor-support-masks
python3.12 -I -B research/disjoint-tensor-support-masks/benchmark.py --rounds 5
```

Expected:

```text
PASS_DISJOINT_TENSOR_SUPPORT_MASKS verify_cases=6 mask_cases=7416 certs=4 no_new_kappa
PASS_REGISTERED_RESEARCH_PACKAGE research/disjoint-tensor-support-masks outcome=completed
PASS_IDENTICAL_DISJOINT_TENSOR_SUPPORT_MASK_RECEIPTS
```

Default verify is read-only. Full `make verify`, selected cold replay, Lean, and
multiplication-theorem obligations were not rerun for this isolated
historical-checker change.

## Result

On Linux / CPython 3.12.3 (Linux-6.12.94+-x86_64-with-glibc2.39), five
alternating fresh-process pairs timing only `DisjointTensor(26).verify`
(construction excluded) gave median wall time **1.101 → 0.606 seconds (1.82×)**.
Timing is host-descriptive and is not a correctness gate; all samples and
environment pins are in [RESULT.json](RESULT.json). Every verify receipt matches
the baseline checker fieldwise (`roles`, `additions`, `dag_sha256`, flags).

## Equivalence

Precompute `vertex[p] = OR { 1<<i : input i contains point p }` and
`full = (1<<len(inputs))-1`. For each output mask `T`,

- historical: bits of inputs `S` with `S&T == 0`
- closed form: `full ^ OR_{p in T} vertex[p]`

An input that meets `T` in one or more points is cleared exactly once by the
OR, matching the Boolean filter. An XOR-of-vertex mutant cancels inputs that
meet `T` twice and is rejected by the package controls. Embedding, recurrence
and `dag_sha256` paths are unchanged. Support checks use `require`, so admission
stays enforced under `-O`.

## Open next questions

1. **Question:** Is `DisjointTensor.verify_frames` / `frame_data` worth a
separate identical-receipt rewrite?
**Why it matters:** On `h=26`, `verify_frames` dominates the full certificate
wall time via point-union loops; it is a different object from the verify
expected-support path measured here.
**First step:** Profile `DisjointTensor(26).verify_frames` alone and check
whether ancestor/target-union construction can reuse precomputed incidence
without changing transition receipts.
**Blocked by:** Out of this session’s stop rule.

2. **Question:** Should `DisjointTensor.verify`'s `dag_sha256` `json.dumps` path
get a hand-rolled formatter like the mixed-point / SharedPoint digests?
**Why it matters:** `json.dumps` is a secondary share of verify after the
support genexpr; a byte-identical encoder would be a different object.
**First step:** Profile the post-mask verify residual and compare a
hand-rolled `[[i,args,str(support)]]` encoder against the committed digest.
**Blocked by:** Out of this session’s stop rule.

## Overlap and credit

Closest priors (different objects):
[CrocSwap/integer-mult-bounds#756](https://github.com/CrocSwap/integer-mult-bounds/pull/756),
[CrocSwap/integer-mult-bounds#1793](https://github.com/CrocSwap/integer-mult-bounds/pull/1793),
[CrocSwap/integer-mult-bounds#1861](https://github.com/CrocSwap/integer-mult-bounds/pull/1861),
[CrocSwap/integer-mult-bounds#1922](https://github.com/CrocSwap/integer-mult-bounds/pull/1922),
[CrocSwap/integer-mult-bounds#1984](https://github.com/CrocSwap/integer-mult-bounds/pull/1984),
[CrocSwap/integer-mult-bounds#1994](https://github.com/CrocSwap/integer-mult-bounds/pull/1994),
[CrocSwap/integer-mult-bounds#2001](https://github.com/CrocSwap/integer-mult-bounds/pull/2001)
(ExclusionCircuit leave-two-out / embedding masks on `scripts/exclusion_circuit.py`;
this package rewrites the triple-disjoint expected-support path inside
`scripts/experiments/disjoint_tensor.py` only). No competing open PR on the
`DisjointTensor.verify` support-mask object at refresh.

Douglas R. Colkitt authored the disjoint-tensor compression screen and original
checker. Prepared by Wentao Li
([VictorLiwentao](https://github.com/VictorLiwentao),
[@Is__Victor](https://x.com/Is__Victor)) with substantial AI assistance, under
Apache-2.0.
50 changes: 50 additions & 0 deletions research/disjoint-tensor-support-masks/RESULT.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"environment": {
"executable": "/usr/bin/python3.12",
"platform": "Linux-6.12.94+-x86_64-with-glibc2.39",
"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]"
},
"fixture": "DisjointTensor(26).verify only (construction excluded)",
"median_baseline_seconds": 1.100771291000001,
"median_optimized_seconds": 0.606201886000008,
"median_ratio": 1.8158493340616007,
"no_new_kappa": true,
"rounds": 5,
"samples": [
{
"baseline_seconds": 1.0696186399999874,
"optimized_seconds": 0.6307327730000338,
"ratio": 1.6958348856876826,
"round": 0
},
{
"baseline_seconds": 1.1055623980000178,
"optimized_seconds": 0.632604850000007,
"ratio": 1.747635033149059,
"round": 1
},
{
"baseline_seconds": 1.0914323959999592,
"optimized_seconds": 0.606201886000008,
"ratio": 1.8004437485368443,
"round": 2
},
{
"baseline_seconds": 1.100771291000001,
"optimized_seconds": 0.5845005470000046,
"ratio": 1.8832681964966445,
"round": 3
},
{
"baseline_seconds": 1.1040789429999904,
"optimized_seconds": 0.5881630169999994,
"ratio": 1.8771648524102826,
"round": 4
}
],
"source_sha256": {
"baseline": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8",
"production": "085600fc922ae167b5981505e1a5caba4d1c1df15482f61d83d2c086fa89eac1"
},
"status": "PASS_IDENTICAL_DISJOINT_TENSOR_SUPPORT_MASK_RECEIPTS"
}
78 changes: 78 additions & 0 deletions research/disjoint-tensor-support-masks/SOURCES.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"schema_version": 1,
"base_commit": "0b1cccf86e2f5132ed286a26ef0a681a495740ea",
"files": [
{
"path": "docs/research/agent-task-catalog.json",
"usage": "provenance",
"git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1",
"sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075"
},
{
"path": "certificates/selected-result.json",
"usage": "provenance",
"git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11",
"sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32"
},
{
"path": "certificates/disjoint-tensor-compression.json",
"usage": "provenance",
"git_blob": "323a46ad8fe77f3d70747b97ce5a0d0fcffaaac5",
"sha256": "3f2b37542f9581f9d3238cccfce19fd3e2964c89ec4af4ff047fb8041f5c3cd1"
},
{
"path": "certificates/ternary-side.json",
"usage": "provenance",
"git_blob": "2c5c9f6ea8ba3200c39283bc7e0059d802268c71",
"sha256": "a01961cf95a3da641302bce643bdb9f2bfbff5094358c7029e0104a90d8a374f"
},
{
"path": "certificates/dyadic-central-factor.json",
"usage": "provenance",
"git_blob": "a85cb8a395065fffc985ead49cb0362532909c97",
"sha256": "ffae0f0a22863718e3134a924592dcf4b05e919223323ba536c587c592bfe6a1"
},
{
"path": "certificates/parity-side.json",
"usage": "provenance",
"git_blob": "afbbf2d3b7c21526853f7db7860071c4a63c475d",
"sha256": "4533d0123659fe7917fbab169e5f4abdbca27510335451feb84b87bea8b668d5"
},
{
"path": "docs/research/disjoint-tensor-compression.md",
"usage": "provenance",
"git_blob": "5c6f8f52f79e4c56f47d5e9cd26d5549f02b60fc",
"sha256": "d7d59f70653b8fbb3cb31fbe6466f73ae48a6b79852f2fe649a9d38e1b9763d1"
},
{
"path": "notes/disjoint-tensor-compression.tex",
"usage": "provenance",
"git_blob": "0e3cad1b933f532cd83d6a3e93114c4c9361e65c",
"sha256": "528cba56872313b8cd63ff11f523a399dfb3c85cae1a764110ae9d26ac9151ac"
},
{
"path": "scripts/experiments/disjoint_tensor.py",
"usage": "provenance",
"git_blob": "dd196e67162c349d9b6f7aa27edbed2b1b0b601f",
"sha256": "102dd59bf96033f96ba0dab4c2aba77b3a7a73b67b0f96929ff8b20a98b91cd8"
},
{
"path": "scripts/audit_disjoint_tensor.py",
"usage": "provenance",
"git_blob": "08cb8184abcb7f81434395871152e4902df8cf84",
"sha256": "477db540e972b82751fac6a3a6d6e38fb4141e967261b1f9c260e2c686479a78"
},
{
"path": "scripts/exclusion_circuit.py",
"usage": "provenance",
"git_blob": "aaa99986c4b81c5d4fbe016fd216a4818940bb95",
"sha256": "b253f9d7318becda1c1f3b24e2287ed44a9c27fcea00cf9d531afb950d0457a0"
},
{
"path": "scripts/binary_phase_frames.py",
"usage": "provenance",
"git_blob": "c8e4fa71fe60550324f9e43c1dd5ad6d9bf4e2f4",
"sha256": "4148cfa313cf050ed25296e8db36d35871520b8318fd086c7d1facf0c6af67d7"
}
]
}
Loading