# Binary 7×7 matrix hypothesis

**All 364 registered alphabet/alignment cases are inconsistent with the confirmed K4 plaintext.** This excludes a fixed 7×7 encryption matrix whose entries are all 0 or 1, with the same alphabet for plaintext and ciphertext, using any rotation of AZ or KRYPTOS and any of the seven consecutive-block alignments. The exclusion holds even if singular matrices are allowed. It does not exclude arbitrary Hill matrices, other alphabets, feedback, affine offsets, or additional transformations.

## Why this hypothesis was tested

Richard Bean's 2018 notes explicitly propose binary 7×7 matrices and discuss restricting alphabet choices to the sculpture alphabets. That gives a specific published hypothesis to test. The example predates the EAST/NORTHEAST disclosures. The earlier Bauer–Link–Molle article's accessible abstract reports 2×2 and 3×3 tests; it does not establish a 7×7 exclusion. [Bean's notes](https://kryptos.richardbean.id.au/kryptos-2018.htm), [Bauer, Link and Molle, 2016](https://www.tandfonline.com/doi/full/10.1080/01611194.2016.1141556)

The local prior reports had surveyed matrix methods without running this exact cell. A newly located July 2026 public handoff reports other Hill and binary work but does not establish the exact bounds of a matching Binary-7 result. Linked report retrieval failed. This audit is therefore a reproducible update of an existing idea, with public exact overlap unresolved—not a claim that binary matrices are novel or that nobody previously tried this. [Public handoff](https://gist.github.com/matbalez/8300cb067a5cda55c3b44ef382d517c0)

## Frozen model

For each consecutive complete seven-letter block, encode the letters through one declared alphabet and require

`C = A P (mod 26)`, where every entry of `A` belongs to `{0,1}`.

There are two base alphabets, all 26 rotations of each, and seven block phases: **52 × 7 = 364 parameter cases**. The matrix remains fixed across the message. There is no additive offset, changing matrix, unknown alphabet permutation, feedback or outer transposition. Row/column-vector notation does not add a case because transposing every possible binary matrix leaves the same matrix set.

The [registration](binary7_preregistration.json) was saved before computation. The [refinement specification](binary7_refinement.json) strengthens the constraints on the same cases; it does not expand the hypothesis after seeing results. The ciphertext and all 24 confirmed letters remain fixed. Original positions are never deleted or reinterpreted as nulls.

The prime length 97 is not handled by silently dropping an end character. The contradiction uses only complete interior blocks. Any boundary treatment that leaves those interior blocks unchanged inherits the contradiction. Identity handling of a partial prefix/suffix appears only in synthetic full-length controls, not as evidence about K4.

## Complete-block gate

Each output row of a binary matrix has only 128 possibilities. For every wholly known plaintext block, its output constrains each row independently. A row with no possible binary coefficients makes the entire matrix impossible, without any determinant computation.

| Evidence supplied to the complete-block gate | Excluded cases | Necessary survivors |
|---|---:|---:|
| Historical BERLIN CLOCK fragment only | 54 | 310 |
| Current 24-letter crib set | 265 | 99 |

This comparison measures the effect of the newer clues on this particular necessary gate. It is not a reconstruction of every historical attack, and the first gate does not use crib letters that straddle an incomplete known-plaintext block.

For example, the unrotated AZ alphabet at phase zero gives two known blocks starting at one-based positions 22 and 64. The first matrix row would need to select a common subset of these coordinate vectors:

```text
(4, 0, 18, 19, 13, 14, 17) → 5  mod 26
(1, 4, 17, 11,  8, 13,  2) → 13 mod 26
```

None of the 128 binary row vectors satisfies both equations. The stored certificate gives these exact inputs and targets. This is a short independently checkable contradiction, rather than a failed attempt to produce readable prose.

## Partial-block refinement

All 99 remaining cases have phase 5 or 6, using zero-based phase labels. In these alignments, only one complete seven-letter plaintext block is available. Other crib letters occupy blocks with one or two unknown plaintext characters. Those unknowns must have the **same values for all seven output rows**.

The coordinator enumerated the 26 or 676 assignments to each such block and represented compatible assignments as bitsets. Choosing a matrix row intersects these domains. Empty intersections reject a branch. This closed all 99 cases after 236 visited search nodes and 723 domain rejections, with **zero complete matrix assignments** reached. The refined real-data calculation used about 0.11 CPU seconds in the recorded run.

The independent verifier obtained an even simpler result: each selected partial block, considered separately with the complete-block constraints, has no shared unknown assignment compatible with all seven rows.

| Phase | Cases | Partial block starts, one-based | Unknown letters per block | Feasible shared assignments |
|---:|---:|---|---|---|
| 5 | 50 | 20, 62, 69 | 2, 2, 1 | Zero for every block in every case |
| 6 | 49 | 21, 63, 70 | 1, 1, 2 | Zero for every block in every case |

Consequently, even the roughly 8.65 million matrix tuples left by the first necessary gate need not be enumerated. Invertibility pruning was proposed in the refinement specification but proved unnecessary and was not used. The final contradiction therefore covers singular matrices as well as invertible ones.

## Verification and limits

The [independent verifier](binary7_independent_verifier.py) imports none of the coordinator's cipher code. It enumerates explicit binary coefficient tuples, checks all 364 first-stage records and all 265 empty-row certificates, then enumerates ordinary tuples of missing plaintext values for the partial blocks. It agrees with the coordinator and records zero mismatches.

Controls include 28 synthetic full-97 round trips across two known invertible binary matrices, both base alphabets and all seven phases; seven additional partial-domain checks; and two positive searches that recover valid synthetic all-crib witnesses at the difficult phases. A zero-input/nonzero-output test verifies a definite negative. These controls validate the arithmetic and rejection logic; their plaintexts are not K4 candidates.

The final result is **364 scoped exclusions, zero unresolved cases, and zero candidate decryptions**. No linguistic score, invented plaintext, or paid checker was involved. Extending the model to other matrix entries, alphabets, dimensions or cipher stages would be a new hypothesis requiring its own justification and bounds.

See [first-stage results](binary7_results.json), [refined results](binary7_refined_results.json), and [independent results](binary7_independent_results.json).

## Published example as a historical positive control

Bean's prose and embedded figure differ: the prose gives final decimal row 68, while the figure shows binary 1001000, or 72. Both readings are retained. The prose matrix is singular; the figure matrix is invertible modulo 26. With the source alphabet and alignment, the figure reproduces both published block pairs and BERLIN CLOCK, but decrypts the newer EAST NORTHEAST span as KFEDNGCKMJFSZ. Two implementations agree. The example's DES is illustrative filler, not an added K4 clue. [Primary notes and figure](https://kryptos.richardbean.id.au/kryptos-2018.htm)

See `binary7_published_control_input.json`, both published-control scripts and their result records. This source-grounded positive control complements the planted tests and demonstrates why fitting the older eleven letters is insufficient.
