Verify It Yourself

This page does not ask for trust. It provides the data, the tables, and the instructions for you to independently verify every position of the proposed K4 solution.

97 positions checkable Full grids published Falsifiable claims

How to verify: step by step

This tutorial walks you through an independent verification of the proposed K4 solution. No specialized tools are needed — a pencil and the alphabet are sufficient.

What you’re testing: Whether the formula R = (C − P) mod 26 produces the published R-grid values at all 97 positions. If it does, the plaintext is arithmetically consistent with the ciphertext and the mechanism.
On-site verification path: You can also derive R position-by-position using the f/g decomposition (r = (f + g) mod 26, then R = r + gate) and confirm each value matches the R-grid. The complete procedure is in the On-Site Field Guide.

Step 1 — Get the ciphertext

The K4 ciphertext is 97 characters, as inscribed on the sculpture:

OBKRUOXOGHULBSOLIFBBWFLRVQQPRNGKSSOTWTQSJQSSEKZZWATJKLUDIAWINFBNYPVTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR

Step 2 — Get the proposed plaintext

The proposed K4 plaintext (97 characters):

THECOMPASSROSEISHEREXEASTNORTHEASTTHISISYOURPOSITIONXCOMMISSIONBERLINCLOCKWHICHISNORTHEASTOFHEREX

Step 3 — Assign letter values

Use the standard alphabet: A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7, I=8, J=9, K=10, L=11, M=12, N=13, O=14, P=15, Q=16, R=17, S=18, T=19, U=20, V=21, W=22, X=23, Y=24, Z=25.

Step 4 — Compute (C − P) mod 26 for each position

For each of the 97 positions, subtract the plaintext letter value from the ciphertext letter value. If the result is negative, add 26. The result is R, the shift at that position.

Worked example — Position 1: C = O (14), P = T (19). R = (14 − 19) mod 26 = (−5) mod 26 = 21. ✓

Position 22: C = F (5), P = E (4). R = (5 − 4) mod 26 = 1. ✓

Step 5 — Compare to the published R-grid

The R-grid table below lists the verified R value at every position. Your computed values should match at all 97 positions. If they do, the plaintext is arithmetically valid.

Step 6 — Spot-check the anchors

Verify specifically that positions 22–25 produce EAST, 26–34 produce NORTHEAST, 64–69 produce BERLIN, and 70–74 produce CLOCK. These are artist-confirmed and must be preserved exactly.

Step 7 (optional) — Use the downloadable tools

The verification bundle includes a Python script (verify.py), CSV and JSON reconciliation tables, and an Excel workbook (k4_verify.xlsx) with formulas already set up. These automate the full 97-position check.

Quick check: verify any position in 30 seconds

Pick any position from 1 to 97. Look up the ciphertext letter (C) and the proposed plaintext letter (P) in the table below. Compute (C − P) mod 26. Compare the result to the R value in the table. It will match.

For example, position 22: C = F (5), P = E (4). Shift: (5 − 4) mod 26 = 1. The table shows R = 1. ✓ This is the start of the confirmed anchor EAST.

Try position 64: C = N (13), P = B (1). Shift: (13 − 1) mod 26 = 12. The table shows R = 12. ✓ This is the start of the confirmed anchor BERLIN.

Every one of the 97 positions resolves the same way. No position requires a special case, an exception, or a secondary key. The formula is uniform.

Position lookup tool

Enter any position (1–97) to see its full data: ciphertext letter, plaintext letter, grid coordinates, binary gate value, shift values, and the arithmetic verification.

Confirmed anchors (hard constraints)

Any proposed K4 solution must preserve these artist-confirmed plaintext segments at their exact documented positions. A proposal that moves them is not testing the same K4.

AnchorPositionsCiphertextR valuesYear
EAST22–25FLRV1, 11, 25, 22020
NORTHEAST26–34QQPRNGKSS3, 2, 24, 24, 6, 2, 10, 0, 252020
BERLIN64–69NYPVTT12, 20, 24, 10, 11, 62010
CLOCK70–74MZFPK10, 14, 17, 13, 02014

How a skeptic tests this

Five independent checks, any of which would falsify the proposal if it fails:

1. Anchor lock

Verify that EAST appears at positions 22–25, NORTHEAST at 26–34, BERLIN at 64–69, and CLOCK at 70–74 in the proposed plaintext. If any anchor is misplaced, the proposal fails immediately.

2. Uniform arithmetic

Compute R[i] = (C[i] − P[i]) mod 26 at all 97 positions. Every result must match the published R value. No position should require special handling, exceptions, or manual overrides.

3. Grid coordinate consistency

Verify that lane = ((i − 2) mod 14) + 1 and tier = ⌈i ÷ 14⌉ hold at all 97 positions. Verify that the binary gate for each cell matches the published gate map, and that gate = 1 where the packet-phase derivation yields 1.

4. Decomposition agreement

Verify that R = r + gate at every position. Both the direct R lookup and the r + gate decomposition must produce identical results. Any discrepancy invalidates the mechanism.

5. Falsification test

If Sanborn or any verified source confirms a plaintext letter inconsistent with this proposal at its documented position, or if original coding records show R values contradicting this table, the proposal is falsified. This is stated in advance and by design.

Step-by-step verification walkthrough

This walkthrough demonstrates the full verification process for several positions — including both gate = 1 and gate = 0. Follow these steps with any position to independently confirm the solution.

Step 1: Get the letters

For position 22 (the first letter of the confirmed EAST anchor): ciphertext letter C = F, plaintext letter P = E.

Step 2: Convert to numbers

Using A=0, B=1, … Z=25: F = 5, E = 4.

Step 3: Compute the shift

R = (C − P) mod 26 = (5 − 4) mod 26 = 1.

Step 4: Check the decomposition

Position 22: gate = 1. The r-grid value is r = 0. r + gate = 0 + 1 = 1 = R. Verified.

Step 5: Confirm the grid coordinates

tier = ⌈ 22 ÷ 14 ⌉ = 2. lane = ((22 − 2) mod 14) + 1 = 7. Position 22 is Tier 2, Lane 7.


More examples

iCPC−PR Gaterr+GateTierLane
1O (14)T (19)−52102121 ✓114
22F (5)E (4)11101 ✓27
64N (13)B (1)121201212 ✓57
74K (10)K (10)00000 ✓63
97R (17)X (23)−62011920 ✓712

Position 1 (gate = 0): a boundary position. Position 74 (K→K): a self-mapping position where ciphertext equals plaintext. Position 97: the last filled cell in the 7×14 grid. All follow the same formula with no exceptions.

Automate it: A Python verification script (verify.py) is included in the download bundle. It runs all four checks across all 97 positions with no dependencies beyond the standard library.

The R-grid (verified shift values)

The complete 7×14 grid of R values. Each value is verified: R = (C − P) mod 26 at the corresponding position.

L14L1L2L3L4L5L6L7L8L9L10L11L12L13
T12120615628141415323914
T2619111023251112523224
T3246210025211214180112
T42411522717318522139617
T52218416517141220241011610
T6141713002521818151221412
T7152562015112152361122·20

The dot (·) marks the blank cell at Tier 7, Lane 13.

The r-grid (base shift values)

Derived from the R-grid: r = R − gate. Where gate = 1, r is one less than R. Where gate = 0, r equals R.

L14L1L2L3L4L5L6L7L8L9L10L11L12L13
T12119614627131314223813
T261800923250102412224
T32351100252011130725101
T42301421616217421129516
T5211731551613122024911610
T61316120252521717140211411
T7142561914011142261021·19

Each r value is produced by the formula r = (f(C) + g(T)) mod 26, where f and g are derived from on-site clues. See the Field Guide for the complete derivation.

Binary gate map

Each cell carries a binary gate value: 1 or 0, fully derivable from position — see The binary gate.

L14L1L2L3L4L5L6L7L8L9L10L11L12L13
T101010011111011
T201111001111100
T311100011111111
T411111111111011
T511110110001000
T611101001111101
T7100111111011·1

69 cells have gate = 1. 28 have gate = 0.

Reconciliation table (all 97 positions)

The complete position-by-position data. Every row is independently checkable: verify that R = (C − P) mod 26 and that R = r + gate.

iTLCC#PP#GaterRCheck
1114O14T1902121
211B1H711920
312K10E4066
413R17C211415
514U20O14066
615O14M12022
716X23P15178
817O14A011314
918G6S1811314
1019H7S1811415
11110U20R17123
12111L11O1402323
13112B1S18189
14113S18E411314
15214O14I8066
1621L11S1811819
1722I8H7101
1823F5E4101
1924B1R171910
2025B1E402323
2126W22X2302525
2227F5E4101
2328L11A011011
2429R17S1812425
25210V21T19112
26211Q16N13123
27212Q16O14022
28213P15R1702424
29314R17T1912324
3031N13H7156
3132G6E4112
3233K10A001010
3334S18S18000
3435S18T1902525
3536O14T1912021
3637T19H711112
3738W22I811314
3839T19S18101
39310Q16I8178
40311S18S181250
41312J9Y2411011
42313Q16O14112
43414S18U2012324
4441S18R17101
4542E4P1511415
4643K10O1412122
4744Z25S18167
4845Z25I811617
4946W22T19123
5047A0I811718
5148T19O14145
5249J9N1312122
53410K10X2311213
54411L11C2099
55412U20O14156
56413D3M1211617
57514I8M1212122
5851A0I811718
5952W22S18134
6053I8S1811516
6154N13I8055
6255F5O1411617
6356B1N1311314
6457N13B101212
6558Y24E402020
6659P15R1702424
67510V21L111910
68511T19I801111
69512T19N13066
70513M12C201010
71614Z25L1111314
7261F5O1411617
7362P15C211213
7463K10K10000
7564W22W221250
7665G6H702525
7766D3I802121
7867K10C2178
7968Z25H711718
8069X23I811415
81610T19S18101
82611J9N1312122
83612C2O1401414
84613D3R1711112
85714I8T1911415
8671G6H702525
8772K10E4066
8873U20A011920
8974H7S1811415
9075U20T19101
9176A0O1411112
9277U20F511415
9378E4H712223
9479K10E4066
95710C2R1711011
96711A0E412122
97712R17X2311920

T = Tier, L = Lane, C# = ciphertext letter value (A=0), P# = plaintext letter value, Gate = binary gate (0 or 1), R = verified shift. All 97 rows pass: R = (C# − P#) mod 26 and R = r + gate.

Download verification data

All verification data is published for independent analysis. The canonical bundle includes everything needed to reproduce and verify the solution from scratch.

Bundle contents (v7):

k4_ciphertext.txt — The 97 ciphertext characters
k4_proposed_plaintext.txt — The 97 proposed plaintext characters
k4_confirmed_anchors.txt — The four artist-confirmed anchors with positions
k4_reconciliation.csv — All 97 rows: i, tier, lane, C, P, gate, r, R
k4_reconciliation_table.json — Same data as JSON (for programmatic use)
k4_reconciliation_table.tsv — Same data as TSV (tab-separated)
R_grid_7x14.txt — The verified R-grid (final shift values) in 7×14 layout
r_grid_7x14.txt — The base r-grid in 7×14 layout
Shift Table.txt — The canonical R-grid with lane_phys indexing notation
gate_map.txt — Binary gate values (0/1 per cell)
verify.py — Python 3 verification script (no dependencies)
verify.xlsx — Excel workbook with formulas for verification (3 sheets)
k1_plaintext.txt, k2_plaintext.txt, k3_plaintext.txt — K1–K3 plaintexts
entrance_slab_morse.txt — Morse code transcriptions from the entrance slabs
README.txt — File manifest, indexing conventions, and verification instructions

Programmers: the CSV and TSV files import directly into Python (pandas), R, Excel, or any spreadsheet application. The JSON file is a 97-element array of objects with all fields. All files are UTF-8 encoded, no BOM. The Python script runs all four checks across all 97 positions with no external dependencies.

What would falsify this

A closed mechanism claim should be able to state clearly what would prove it wrong:

Confirmation of any plaintext letter inconsistent with the proposed string at its verified position. Release of original coding records showing R values that contradict the published table. Demonstration that lane = ((i − 2) mod 14) + 1 fails at any position. Or identification of a position where R ≠ (C − P) mod 26.

The mechanism claims are uniform across all 97 positions and do not depend on interpretive choices about the plaintext. They can be verified or falsified directly from the reconciliation table.

Continue