The recurrence, the verse, the identity — step by step
Each of the Book of Soyga’s 36 tables is a 36×36 grid of letters from the 23-letter Latin alphabet:
Left margin. Each table is keyed to a 6-letter code word W₁W₂W₃W₄W₅W₆. The left column of the 36-row grid is the sequence: W₁W₂W₃W₄W₅W₆W₆W₅W₄W₃W₂W₁ (word then its reverse), repeated three times to fill 36 rows.
Top row (no cell above). For columns 2–36 of row 1:
where W is the cell to the left. Only the left-neighbour matters; there is no cell above.
Interior cells (rows 2–36, columns 2–36):
where N is the cell above and W is the cell to the left.
The crucial point: in both cases the function f is applied to the left (west) cell, and its output is added to the north cell (or, in the top row, to the left cell itself).
Reeds’s empirical f (Table II of his 1999 paper):
| W | a | b | c | d | e | f | g | h | i | k | l | m | n | o | p | q | r | s | t | u | x | y | z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| f(W) | 2 | 2 | 3 | 5 | 14 | 2 | 6 | 5 | 14 | 15 | 20 | 22 | 14 | 8 | 13 | 20 | 11 | 8 | 8 | 15 | 15 | 15 | 2 |
Reeds noted: “f is known to us only by a table of values determined empirically." Its origin was open from 1998 until 2026.
Book of Soyga, Section 18 (Aldaraia sive Soyga vocor). Kupin 2014 edition, Latin text lines 8151–8172, English translation lines 8318–8337.
Heading: “Versibus ostendam quid monstret quaeque figura” — “In verses I will show what each figure denotes.”
The verse assigns each letter a value V(W) through Latin number-words. Parsing letter by letter:
| Verse fragment (Latin) | Letter(s) | Number-word | V(W) |
|---|---|---|---|
| Tres numeros z, b; numeros tres continet a, f | z, b, a, f | tres = 3 | 3 |
| H bis tres numeros | h | bis tres = 2×3 = 6 | 6 |
| Septem G | g | septem = 7 | 7 |
| O plenum cum T, comis est, S ter tria portat | o, t, s | ter tria = 3×3 = 9 | 9 |
| Bis sex, R | r | bis sex = 2×6 = 12 | 12 |
| Bis septem P | p | bis septem = 2×7 = 14 | 14 |
| E cum n tenet I, numeros ter quinque | e, n, i | ter quinque = 3×5 = 15 | 15 |
| V cum K ut x, y, dat bis octo | u, k, x, y | bis octo = 2×8 = 16 | 16 |
| L ut Q, numeros ter vii | l, q | ter vii = 3×7 = 21 | 21 |
| M xxti tria portat | m | xx + tria = 20+3 = 23 | 23 |
| Terque novem per se C | c | ter × novem = 3×9 = 27 | 27 |
| Vigintique novem D dat cum sumitur ampla | d | viginti + novem = 20+9 = 29 | 29 |
Note on o, t = 9: The line “O plenum cum T, comis est, S ter tria portat” is fully legible in the printed Kupin edition (second independent review, 2026-06-09, ~line 8165). The values o = t = s = 9 are attested in the printed text, not inferred. The same independent OCR pass of the Internet Archive source concurs.
| Letter | V(W) (verse) | V(W)−1 | (V(W)−1) mod 23 | Reeds f(W) | Match? |
|---|---|---|---|---|---|
| a | 3 | 2 | 2 | 2 | ✓ |
| b | 3 | 2 | 2 | 2 | ✓ |
| c | 27 | 26 | 3 | 3 | ✓ (mod-23 wrap) |
| d | 29 | 28 | 5 | 5 | ✓ (mod-23 wrap) |
| e | 15 | 14 | 14 | 14 | ✓ |
| f | 3 | 2 | 2 | 2 | ✓ |
| g | 7 | 6 | 6 | 6 | ✓ |
| h | 6 | 5 | 5 | 5 | ✓ |
| i | 15 | 14 | 14 | 14 | ✓ |
| k | 16 | 15 | 15 | 15 | ✓ |
| l | 21 | 20 | 20 | 20 | ✓ |
| m | 23 | 22 | 22 | 22 | ✓ |
| n | 15 | 14 | 14 | 14 | ✓ |
| o | 9 | 8 | 8 | 8 | ✓ |
| p | 14 | 13 | 13 | 13 | ✓ |
| q | 21 | 20 | 20 | 20 | ✓ |
| r | 12 | 11 | 11 | 11 | ✓ |
| s | 9 | 8 | 8 | 8 | ✓ |
| t | 9 | 8 | 8 | 8 | ✓ |
| u | 16 | 15 | 15 | 15 | ✓ |
| x | 16 | 15 | 15 | 15 | ✓ |
| y | 16 | 15 | 15 | 15 | ✓ |
| z | 3 | 2 | 2 | 2 | ✓ |
| Total matches | 23 / 23 | ||||
The mod-23 wrap. For c: V = 27, so V−1 = 26, and 26 mod 23 = 3 = f(c). For d: V = 29, so V−1 = 28, and 28 mod 23 = 5 = f(d). No other letter requires the wrap; c and d alone have V > 23.
Uniqueness. The offset k = 1 (i.e., f = V−1) is the only constant giving 23/23 matches. Every other integer k from 0 to 22 gives 0/23. This rules out coincidence.
The verse says (in the author’s terms): the V-th letter, counting from and including the letter above, is the new value. Reeds’s recurrence says: advance f steps past the cell above. The gap between “the Nth item counting inclusively from position P” and “advance N steps from P” is exactly 1. Under the reading V is an inclusive ordinal and f is an exclusive step count, the tables regenerate exactly. This gloss is ours, not a quoted instruction from the manuscript; under it the arithmetic is perfect.
Applying f(W) = V(W) − 1 (mod 23) to the recurrence reproduces:
Tabula 1, code word NISRAM, rows 1–3 (verified against Reeds’s full typeset transcription):
Row 1: n d i z b d i z b d i z b d i z b d i z b d i z b d i z b d i z b d i z
Row 2: i s r l y t r l y t r l y t r l y t r l y t r l y t r l y t r l y t r l
Row 3: s c u c b x i b a x i b a x i b a x i b a x i b a x i b a x i b a x i b
The top-row pattern (n→d→i→z→b→d→i→z→…) is an instance of the two-cycle attractor structure explained in the Verification section.
| Tables | Keys |
|---|---|
| T1–T12 | Zodiac (Aries NISRAM through Pisces) |
| T13–T24 | Zodiac reversed (T13 = MARSIN, the exact reverse of NISRAM; all 12/12) |
| T25–T31 | Seven planets |
| T32–T35 | Four elements |
| T36 | Magistri (MOYSES — Moses) |
T13–T24 code words are the exact reverses of T1–T12. However, a reverse code word does not produce a geometric mirror of its partner table: T1 (NISRAM) and T13 (MARSIN) differ in 1,233 of 1,296 cells (95.1%). The recurrence is non-linear; only the seed is reversed.
The Magistri table (MOYSES). Tabula 36 is the only table whose code word is a proper name. Its famous missing row is demonstrably not an algorithmic artifact: regenerating MOYSES yields zero rule violations across all interior cells. The blank row is a deliberate scribal reservation — and the two manuscripts (Bodley 908 and Sloane 8) blank different rows (Bodley row 13, Sloane row 36 after closing ranks), proving the scribes knew a row was reserved but disagreed which.
Reeds’s 1999 paper catalogued errors in the manuscript copies: 13 original transcription errors and 7 transposition errors. The verification implementation diverges from the manuscript precisely at those coordinates, and nowhere else. This is an additional confirmation that the generation algorithm and f are correct.