Jason Louv · first public presentation 13 June 2026, Austin, TX · this page first published June 2026
jason@ultraculture.org · ultraculture.org
f(W) = V(W) − 1 (mod 23)
— exact for all 23 letters, with one uniform constant and zero free parameters. Reeds's function is the book's own letter-value system, off by one — and the "one" is the difference between inclusive and exclusive counting.
On 10 March 1581/2, at Mortlake, John Dee sat opposite his skryer Edward Kelley and opened communication with what he took to be the archangel Uriel. Dee held up the Book of Soyga — the Aldaraia sive Soyga vocor, a Latin magical encyclopaedia he had probably copied in manuscript — and asked Uriel directly how to read its 36 letter-tables. The angel told him only that the interpretation of the book belonged to the archangel Michael, and that Zadzaczadlin was Adam.
Jim Reeds, working in 1998, solved the mechanical part of the question: the tables are generated by a deterministic recurrence. But the auxiliary function f(W) he could find only by reverse-engineering it from the grids themselves — 23 empirical values with no stated origin.
The origin was in the book all along, 150 pages from the tables: the Section 18 verse, which assigns each letter a numerical value V. Reeds never had a complete transcription of the prose (Jane Kupin’s complete edition appeared only in 2014). The two halves of the answer sat in one codex for four centuries.
"Versibus ostendam quid monstret quaeque figura…" — In verses I will show what each figure denotes.
Tres numeros z, b; numeros tres continet a, f. / H bis tres numeros… / Septem G… /
O plenum cum T, comis est, S ter tria portat. / Bis sex, R… / Bis septem… P… /
E cum n tenet I, numeros ter quinque… / V cum K ut x, y, dat bis octo… / L ut Q, numeros ter vii… /
M xxti tria portat. / Terque novem per se C… / Vigintique novem D dat cum sumitur ampla.
Book of Soyga (Aldaraia sive Soyga vocor), Section 18; text per Jane L. Kupin's 2014 edition (esotericarchives.com), Latin lines 8151–8172, translation lines 8318–8337. An independent OCR pass concurs with Kupin's readings of every number-word. The O/T/S line ("O plenum cum T, comis est, S ter tria portat") is fully legible in the printed edition (second independent review, 2026-06-09); o = t = s = 9 is attested, not inferred.
| Letter | a | b | c | d | e | f | g | h | i | k | l | m | n | o | p | q | r | s | t | u | x | y | z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| V (verse) | 3 | 3 | 27 | 29 | 15 | 3 | 7 | 6 | 15 | 16 | 21 | 23 | 15 | 9 | 14 | 21 | 12 | 9 | 9 | 16 | 16 | 16 | 3 |
| (V−1) mod 23 | 2 | 2 | 3 | 5 | 14 | 2 | 6 | 5 | 14 | 15 | 20 | 22 | 14 | 8 | 13 | 20 | 11 | 8 | 8 | 15 | 15 | 15 | 2 |
| Reeds's f (1998) | 2 | 2 | 3 | 5 | 14 | 2 | 6 | 5 | 14 | 15 | 20 | 22 | 14 | 8 | 13 | 20 | 11 | 8 | 8 | 15 | 15 | 15 | 2 |
23 of 23. The mod-23 wrap is needed only for the two letters whose value exceeds the alphabet size (c: 27−1 = 26 ≡ 3; d: 29−1 = 28 ≡ 5). Under this identity the book’s own values regenerate all 36 tables, all 46,656 cells, identically to Reeds’s construction.
The uniqueness check: offset k = 1 is the only value giving 23/23 matches; every other constant k gives 0/23. This is not a coincidence.
The same letter-values do arithmetic work throughout the book’s prose. No modern transcription could have been fitted to Reeds’s table after the fact:
The Book of Soyga answers Dee’s question in its own prose — material Reeds never had transcribed. Section 26.1 (the Liber Radiorum preface) describes the tables as simultaneously an angel-binding grid (per virtutem tabularum exorcismo alligati — “bound by exorcism through the power of the tables”) and a scrying mirror (vicem speculi gerit… intuentibus faciet videre quod libuerit — “serves as a mirror and makes the gazer see what they wish”). Section 27 states that each letter in the tables summons a named count of spirits, and that all binding is per Agla virtutem — through the divine name AGLA. The tables are not a cryptogram concealing a message; they are an operative instrument designed to be enacted.
Six letters from the 23-letter alphabet: a b c d e f g h i k l m n o p q r s t u x y z (j→i, v/w→u). The margin is your word and its reverse, repeated; everything else follows from the verse’s numbers.
try nisram and compare with Bodley 908 / Sloane 8, Tabula 1
ABC = "abcdefghiklmnopqrstuxyz" # 23 letters, no j/v/w
V = dict(zip(ABC, [3,3,27,29,15,3,7,6,15,16,21,23,15,9,14,21,12,9,9,16,16,16,3]))
f = {c: (V[c] - 1) % 23 for c in ABC} # f = V - 1 (the whole discovery)
def table(word, n=36):
margin = (word + word[::-1]) * 3 # code word + reverse, repeated
g = [[margin[r] for c in range(n)] for r in range(n)]
for r in range(n):
for c in range(1, n):
prev = g[r][c-1] if r == 0 else g[r-1][c]
g[r][c] = ABC[(ABC.index(prev) + f[g[r][c-1]]) % 23]
return g
for row in table("nisram")[:3]: print(" ".join(row))
# n d i z b d i z b ...
# i s r l y t r l y ...
# s c u c b x i b a ...
Full verification suite (independent reimplementation, Reeds-anchor checks, null models): soyga_verification_bundle.zip.
A timestamped deposit of the full findings dossier and verification code is linked here upon Zenodo registration: [DOI placeholder — Zenodo]. This page is archived at the Internet Archive.
Full technical derivation: Derivation · Verification methodology: Verification · Per-claim confidence ledger: Confidence · Objections answered: FAQ · Sources: Sources