XOR → 144 tiles → 144 axes → gzip/SimHash fill the binary lattice → intent vs reality → signed receipt. Every translation step named, with the math, the function call, and the meta-case verbatim output. No conceptual leaks. Drafted 2026-05-26.
Anyone who fixed AI reliability fixed competence verification at silicon speed too — by Rice (1953), same problem. They didn't. We did. We patented it.
This page is the operator's translation guide — every step from "I have a doc" to "I have a signed receipt that any third party can verify in their browser." Eleven steps, all reproducible, all witnessed.
This page uses Lane for the authorized region the operator signed for (the schema field formerly labeled "Visa" — renamed because Visa Inc. holds aggressive trademark on the word in financial-services contexts, and a patent-prosecution-grade artifact shouldn't depend on nominative fair-use defenses). The Dignity Pixel is a separate, derived quantity: the operator's accumulated coordinate-of-verified-competence across many receipts. Lane is the input (intent); Dignity Pixel is the output (identity). They live in the same lattice but they aren't the same field.
Where the corpus still uses "Visa-shape royalty" (the network-economics comp), that's the historical Visa-the-company reference and stays — that's nominative fair use of the company name as a comparable.
0The substrate is a 12 × 12 self-similar prefix-inherited lattice.
Three cardinals × three sub-axes each = 9 leaves at depth 1 + 3 cardinals = 12 cells. Subdivide each cell into 12 → 144 tiles at depth 2. Subdivide each tile into 12 → 1,728 at depth 3. Bounded by MAX_DEPTH=4 = 20,736 at depth 4.
| Rank | Cardinal | Sub-axes | Question the axis answers |
|---|---|---|---|
| A | 🏛️ Strategy | A1·Law · A2·Goal · A3·Fund | rules · objectives · capital |
| B | ⚡ Tactics | B1·Speed · B2·Deal · B3·Signal | throughput · transaction · attention |
| C | 🔧 Operations | C1·Grid · C2·Loop · C3·Flow | storage · iteration · pipeline |
packages/thetacog-mcp/lib/pmu/axis-library-v1.json/docs/architecture/lattice-geometry-deep.html would walk through the orthogonality floor (0.12), the √mass-weighted coverage (0.95 target), and the subdivide-at-depth-N proofs.1The operator feeds a document into the pipeline. The document is a UTF-8 string; we hold it as bytes and immediately compute its gzip-compressed length as a referential check.
Why this matters: gzip is referentially transparent — same bytes in, same length out, every time. The doc_length / gzip_length ratio is the document's compressibility, a free sanity check; highly-redundant docs (CSV, repeated boilerplate) gzip to ~10% of their length, while novel prose gzips to ~30-40%.
2Each of the 12 canonical cells has 3-4 meaning-bearing snippets — the prose that defines what the cell is "about." Total ~36-48 snippets at depth-1, growing to 500+ at depth-2.5 via expandCell().
Example A1·Strategy.Law snippets (real, shipped in axis-library-v1.json):
Why this is the chip-cheap fill: the snippets are NOT generated at runtime — they're authored once per cohort/domain (compliance officers, CISOs, actuaries, etc.) and shipped as a JSON file. The chip side doesn't run an LLM; it just compares the operator's doc against pre-computed snippets. gzip is the comparator; the snippets are the corpus the lattice cells reference.
extractConcepts(doc, opts) + expandCell(input, opts) in src/app/pmu-simulator/concept-expand.mjs would generate the 132 missing sub-tiles per cohort in ~30 sec on a representative corpus.3Normalized Compression Distance (NCD) measures semantic similarity between the doc and each cell-snippet via gzip-length arithmetic.
The intuition: if doc and snippet share meaning, concatenating them compresses MORE efficiently than the worse of the two compressed alone (the gzip dictionary builds shared structure). If they're unrelated, the join compresses to roughly the sum minus a tiny header — high NCD, low similarity.
Per-cell score: we score every (axis, snippet) pair and average the similarities per axis. The axis with the highest mean similarity wins under the gzipNCD witness.
4SimHash is what the chip fires: text → 64-bit signature; distance is popcount(sigA XOR sigB), which is combinational (AC⁰), no Turing loop. This is the load-bearing chip-side claim of the patent.
Why this is the chip-side comparator: XOR + popcount fits in a constant-depth combinational circuit. No state, no loop, no instruction surface for a prompt-injection to drift into. Per the patent (US 19/637,714), this is the verifier-class-different-from-the-verified that Rice (1953) makes mandatory. The signature is computed once at ingest (off-chip); the distance is the chip's only operation.
5The σ-margin is the top-axis z-score against the other 11 axes — under each witness independently.
| σ-margin | Interpretation |
|---|---|
| σ ≥ 8 | Overwhelming placement; the doc is unambiguously in this cell |
| σ ≥ 4 | Clean placement; very high confidence |
| σ ≥ 3 | Confident placement; passes the operator's default floor |
| σ ≥ 1 | Detectable placement; works but library needs tuning |
| σ < 1 | Below floor; doc is between axes (or the lib is wrong for this corpus) |
6The top cell under each witness either agrees or doesn't. Disagreement is NOT silently reconciled — it surfaces as the explicit field agreement: false. Disagreement is the calibration signal.
The pmu-demo / pmu-report verdict logic:
7The XOR boundary check fires: is the doc's Reality cell ∈ the operator's authorized Lane?
In silicon, this is the canonical XOR + popcount:
Set-membership at the demo layer is the same operation; popcount-at-the-cache-line is the silicon-side form. ~100 picoseconds, combinational, no model, no loop.
8The Δ-map is the cell-by-cell consequence of the XOR. Each authorized Lane cell gets a status (hit / authorized-unused / unauthorized-hit).
This is the load-bearing field for "dynamic stability." We don't just say "drift happened" — we say which axis drifted. The operator can see exactly where to add training, grow capacity, or reject deployment.
| cell | violation | status | meaning |
|---|---|---|---|
| A1 (in Lane, was hit) | 0 | hit | operator landed on an authorized cell — verdict in their favor |
| B2 (in Lane, unused) | 0 | authorized-unused | cell available but doc didn't land here; growth-path candidate |
| B3 (in Lane, unused) | 0 | authorized-unused | same — growth-path candidate |
| C1 (out of Lane, hit) | 1 | unauthorized-hit | operator drifted into a cell not in their Lane — the actuarial event |
For an underwriter: the Δ-map is the actuarial unit. For an employer: the same Δ-map names the operator's verified competence + the next axis to grow into.
9The receipt body is assembled and signed with the host's ed25519 private key.
Per-host keypair lives at ~/.thetacog/pmu/keys/host.{pub,priv}.pem, generated at first run, mode 0600 on the private. Signature is 64 bytes, base64-encoded into the receipt's signature field with ed25519: prefix.
Verification path: any recipient with the receipt JSON + the host pubkey can run crypto.subtle.verify('Ed25519', ...) in their browser at /verify-receipt — no server, no network, no trust point.
10If THETACOG_RECEIPT_ENDPOINT is set, the signed receipt POSTs to that URL. Otherwise the pipeline prints the curl-equivalent for the operator to dispatch manually.
The cloud bridge is the receipt's transit layer to a registry. Receipts at the registry can be aggregated per-host into a σ-distribution (the carrier's view), per-cell into a market index (the marketplace view), or per-job-spec into a match-set (the employer's view). Same JSON, three readers.
11The same receipt is read by two markets without modification.
Market 1 (AI containment underwriting): the carrier reads the Δ-map as an actuarial unit; per-cell violation rate × severity = treaty price. The verdict IN_ROLE means the agent stayed in its authorized Lane; OUT_OF_ROLE is the binding event.
Market 2 (competence verification): the employer reads the same receipt as a stayed-in-lane attestation. cell ∈ job-Lane AND σ-floor ≥ required → MATCH; otherwise NEAR with gap-naming (which axes to grow into, how much σ to add).
Why the same JSON works in two markets: by Rice (1953), the substrate doesn't distinguish AI execution from human execution. A cache miss is a cache miss. The receipt has no field for which kind of operator emitted the trace; the carrier reads it one way, the employer reads it the other, the math is identical.
[0] GEOMETRY · 12 axes × 12 sub-axes = 144 tiles · ShortLex self-similar
axisLib.axes[i].snippets[j]
│
▼
[1] INGEST · doc → bytes → gzip-length
readFileSync() · gzipSync(Buffer.from(doc))
│
▼
[2] SEMANTIC DUMPS · 36-48 snippets per depth-1 cell (500+ at depth-2.5)
for axis: for snippet: ...
│
┌────────┴────────┐
▼ ▼
[3] gzipNCD [4] simhashCosine
ncdSim() simhash() + popcount(XOR)
│ │
└────────┬────────┘
▼
[5] σ-MARGIN · top-axis z-score per witness
│
▼
[6] AGREEMENT? · gzipTop === simhashTop
│ yes → primary cell + σ-floor
│ no → null + σ-floor 0 (calibration signal)
▼
[7] XOR BOUNDARY · reality_cell ∈ lane_set?
popcount(lane_mask AND reality_bit) == 1
│
▼
[8] Δ-MAP · per-cell violation/status (WHERE the drift is)
│
▼
[9] ed25519 SIGN · crypto.sign(null, body, priv)
│
▼
[10] CLOUD BRIDGE · POST or curl-equivalent
│
▼
[11] MARKET MATCH · Market 1 (underwriter Δ) + Market 2 (employer fit)
│
▼
RECIPIENT → /verify-receipt → ✓/✗
| Step | Translation | Status | If gap, what fills it |
|---|---|---|---|
| 0 | 12 axes → 144 tiles geometry | ✅ solved · self-similar at every altitude | — |
| 1 | text → bytes → gzip-length | ✅ solved · referentially transparent | — |
| 2 | 144 tiles' meaning-bearing snippets | ⚠ partial · depth-1 (12 cells × 3-4 snippets) shipped; depth-2 (144 cells) is 132/144 BLANK | extractConcepts + expandCell in concept-expand.mjs — per-cohort, ~30 sec on a representative corpus |
| 3 | gzipNCD per-axis projection | ✅ solved · oracle (off-chip) | — |
| 4 | SimHash per-axis projection | ✅ solved · on-chip-shape (AC⁰ in silicon) | — |
| 5 | σ-margin computation | ✅ solved · z-score arithmetic | — |
| 6 | AGREEMENT/DISAGREEMENT verdict | ✅ solved · surfaced, never silently reconciled | — |
| 7 | XOR boundary check | ✅ solved · set-membership now, popcount-at-cache-line in silicon | — |
| 8 | Δ-map per-cell | ✅ solved · WHERE the drift is, not just that it happened | — |
| 9 | ed25519 sign | ✅ solved · per-host keypair, browser-verifiable | — |
| 10 | Cloud bridge POST | ⚠ infra-pending · stub prints curl-equivalent; receipts on disk are the artifact today | Cloudflare Workers + D1 endpoint at $THETACOG_RECEIPT_ENDPOINT — canonical-decisions Q2 |
| 11 | Market match · two readers, same JSON | ✅ solved at protocol layer · ⚠ UX layer is /marketplace v0 (host-local empty until receipts populate) | /marketplace v1 — submit-job + submit-seeker forms — canonical-decisions Q4 |
Net: 8 of 11 steps are fully solved; 2 have honest infra-pending tags (depth-2 snippet fill, cloud bridge endpoint); 1 is at v0 UX awaiting receipt-flow. No conceptual leaks; every gap names the function or script that closes it.
The full pipeline above runs on your laptop in ~30 seconds:
$ npx thetacog-mcp pmu-report --file YOUR-DOC.md ✓ receipt: ~/.thetacog/pmu/receipts/<id>.json ✓ report: ~/.thetacog/pmu/reports/report-<id>.html ✓ BOTH-AGREEMENT · primary cell: A1 · σ-floor: 2.68 verdict: IN_ROLE → opened in browser
The HTML report that opens contains every step above with your specific input's data. Forward it to anyone; verify the signature at /verify-receipt.
Drafted 2026-05-26 per operator goal: "show me the steps one by one xor to semantic dump in 144 tiles to decomposition into 144 axes nodes, gzip/simhash to fill the binary lattice based on intent/reality." Companion artifacts: screen-requirements R1-R33 · 5-run dogfood report · Anton-test guide · /air-receipt schema · /verify-receipt. Visa→Lane rename per trademark / patent-prosecution-safety concern; Dignity Pixel is a distinct derived field, not a rename of Visa. Originating-Terminal: 🎤 Terminal Voice.