# Session 12: learning sign boundaries with the key (lattice EM), neural posterior for the period cipher, and three borrowed methods tested on planted controls

> Eight unattended generations under fixed gates. Lattice EM is the first learned-boundary solver to partly read a planted control (key 70 %, coverage…

Source: https://mysteriesdept.com/mysteries/voynich-manuscript/sessions/SES0DCHSYCCGJSK/session-12-learning-sign-boundaries-with-the-key-lattice-em  
Publisher: Mysteries Department  
Licence: CC BY 4.0 (credit Mysteries Department and link the page)  

---

[Voynich Manuscript](https://mysteriesdept.com/mysteries/voynich-manuscript)[Research sessions](https://mysteriesdept.com/mysteries/voynich-manuscript/sessions)Session 12

Research session 12 · Voynich Manuscript

# learning sign boundaries with the key (lattice EM), neural posterior for the period cipher, and three borrowed methods tested on planted controls

Eight unattended generations under fixed gates. Lattice EM is the first learned-boundary solver to partly read a planted control (key 70 %, coverage 0.407 vs bar 0.483), but only for the simplest period-cipher system; at the fitted settings even the true key decodes below the bar. Neural posterior estimation replaces ABC with a calibrated posterior. Gromov-Wasserstein and annealing failed their controls and were dropped. Herbal A never beat the structure-preserving null. No reading.

Session **12** 28 Oct 2026Test**20** runs**2** evidence

[Session 11 · **the Naibbe cipher tested; section-level hyper-simulation; period cipher practice fitted to the herbal sections** ](https://mysteriesdept.com/mysteries/voynich-manuscript/sessions/SES0DCDMFZAWWNC/session-11-the-naibbe-cipher-tested-section-level-hyper)[Session 13 · **The lattice EM at GPU scale up a ladder of planted controls; the simplest control read, the homophone rung not** ](https://mysteriesdept.com/mysteries/voynich-manuscript/sessions/SES0DCR446F5BXD/the-lattice-em-at-gpu-scale-up-a-ladder-of-planted-controls)

## In brief

1. The period-cipher hypothesis can't be tested on the manuscript at its fitted settings with a learned-boundary solver: the key isn't recoverable from a planted control of herbal-section length, and the failure is in search (the true key's basin is the best optimum), not in the model. Under the systems where a control met the coverage bar, Herbal A decoded below the structure-preserving null. The coverage bar can be met without reading; the null gate and key accuracy caught every case.

## What movedNo question changed standing

[How was the text produced on the page?](https://mysteriesdept.com/mysteries/voynich-manuscript/questions/QST08JG6BH02GE7/how-was-the-text-produced-on-the-page)[What procedure reproduces its statistics?](https://mysteriesdept.com/mysteries/voynich-manuscript/questions/QST08JG6T5R6RRQ/what-procedure-reproduces-its-statistics)this question

 [Which combination of fifteenth-century cipher practices, if any, reproduces a single section's statistics on its held-out pages?](https://mysteriesdept.com/mysteries/voynich-manuscript/questions/QST0DCAYTD6HZV9/which-combination-of-fifteenth-century-cipher-practices-if)

+2 evidence, 2 neutraltaken up again

[Latin as a re-spaced homophonic stream (period practices)](https://mysteriesdept.com/mysteries/voynich-manuscript/answers/ANS0DCBFK8KPD81/latin-as-a-re-spaced-homophonic-stream-period-practices) · 1 for, 0 againstPossible

**Open** unchanged

## What's next5 steps set

Open

Search that reaches the true key's basin on the simplest control (longer basin hopping, parallel tempering proper), then the same search on the fitted settings

Kept on this session, not tied to a questionSet this session

Open

A control score that cannot be met without reading (character similarity or key accuracy) added to the gates before the next run

Kept on this session, not tied to a questionSet this session

Open

Element trigram model inside the lattice EM (the bigram model caps coverage below the bar at the fitted settings)

Kept on this session, not tied to a questionSet this session

Open

Statistics that identify nomenclator size and homophone counts for the NPE (the current 19 don't)

Kept on this session, not tied to a questionSet this session

Open

Plant identifications compiled (Q-034) so cribs can be used as constraints

Kept on this session, not tied to a questionSet this session

Next steps live on their questions, where anyone can take one up.

## What was done

**Date:** 2026-10-28. Brief: two tracks, fixed gates (planted control: 50 % word accuracy or 70 % of the plaintext's dictionary coverage; manuscript: beat a structure-preserving null by more than the control's margin with permutation p < 0.01, fitted on training quires A C E G M O T and read on held-out pages; cribs where they apply), generations of at most 90 minutes, stop after two batches with nothing passing.

**Step 0.** Session 11 code and data fetched from the site and checked byte for byte (all SHA-256 equal); the herbal split reproduces exactly (Herbal A 57/4,667 and 38/2,850; Herbal B 12/1,302 and 20/2,014), and the T40 control's true-plaintext coverage (0.697) reproduces. Prior-work register built from the seven methods surveys (DAT0DCHSG1BXKEQ); six missing sources added after checking each publisher page [@mochihashi2009bayesian; @papamakarios2016fast; @hukushima1996exchange; @knight2006unsupervised; @deistler2022truncated; @ueda1998deterministic; @machta2010population]. Q-034 has no compiled plant identifications, so no crib applied.

**Track A: lattice EM** (MTH0DCF04BX248D). EM over every segmentation of each written word [@knight2006unsupervised; @aldarrab2022], with copied-null words and a structure-preserving null (the fitted generator on pseudo-Latin).

- Generation 1: key with learned boundaries 36 % (T40: 11-23 %), coverage 0.324 vs bar 0.488. Trigram polish with T40's solver (generation 2) didn't help; killed.
- Ladder (generation 3): even one sign per letter with no nulls fails (key 38 %); the limit is the overlapping glyph-chunk signs.
- Diagnostic: EM started from the true key beats every random restart on likelihood, so it's a search problem. Ceiling: with the true key the simplest system decodes to 0.518 (passes), the full T39 setting to 0.441 (can't pass with this decoder).
- More restarts help [@bergkirkpatrick2013decipherment]: 200 restarts, key 70 %; basin hopping from the best of 400 (generation 7) reads the control in places ('…condigitpeporis…puneficiquiam…frigit…' for '…contigitcumteporis…punicaeficiqueiam…frigida…'), coverage 0.407. A search budget repeatable on the null (generation 8) reached only 0.376.
- Manuscript: decoded twice, under the NPE Herbal A setting and under the population-annealed simplest system, both licensed by controls that met the coverage bar with 2 % and 0 % of the key. Herbal A came out below the null both times (0.214 vs 0.253; 0.282 vs 0.369, p 0.58). Herbal B's control failed (too short).

**Track B.**

- Neural posterior estimation (MTH0DCF1J196PST) [@papamakarios2016fast; @talts2018validating]: calibrated (90 % sets cover 96-100 %), beats rejection ABC; the round-1 modes fit held-out pages better than T39 (3/12 vs 5/12, 2/12 vs 3/12), but a truncated-prior round 2 [@deistler2022truncated] moved the modes back to T39's level. Robust: stream spacing, line layer, simplified spelling, no syllable signs or positional forms.
- Gromov-Wasserstein alignment (MTH0DCF1JFCRDXQ) [@alvarezmelis2018gromov]: 0.3 % and 3.9 % word accuracy on its own control (bar 50 %); dropped.
- Population and deterministic annealing of EM (MTH0DCG2EATR1ZW) [@machta2010population; @ueda1998deterministic]: collapse onto one degenerate state, worse than restarts twice; dropped.

**Stopping.** Batches 2 and 3 produced nothing that passes a gate except coverage-bar passes with 0-2 % key accuracy that then failed the null, so the loop stopped at about 3¾ of the 6 hours. Nothing reached the discovery bar, so no replication or blind check was needed.

**Files.** Every run's code, command, seeds, environment and outputs are on its run record; the driver versions are named by SHA-256 on each run (run_t41.py 79ba533a was rebuilt byte for byte for generation 7).

Runs 20

| Run | Measured | Result | Against | Decision |
|---|---|---|---|---|
| T41 generation 1: lattice EM, planted control and structure-preserving null (pw 0.25, alpha 0.05) | Held-out dictionary coverage (bar 0.7 x true plaintext's) / key accuracy by use / character similarity | control 0.324 / 0.364 / 0.083 (bar 0.488; true plaintext 0.697); permuted-key 0.282 (p 0.19). Pseudo-Latin null: 0.309 and 0.351 decoded coverage (their own plaintexts 0.359, 0.337) | M-T40 rung B (learned boundaries, element solver): key 0.114-0.228, coverage 0.232-0.271 · rung A (true boundaries): key 0.706, coverage 0.336 | Fails the control gate (0.324 < 0.488), so the manuscript was not decoded. Key accuracy with learned boundaries rises from T40's 11-23 % to 36 %, but the decoded control is Latin-like letter soup, no better on coverage than a permuted key. The pseudo-Latin null decodes to the same coverage as the control: with a bigram element model, coverage cannot tell a real key from structure. |
| T41 generation 1 variant: lattice EM control with sparser prior and more nulls (pw 0.3, alpha 0.01) | Held-out dictionary coverage (bar 0.7 x true plaintext's) / key accuracy by use / character similarity | control 0.325 / 0.071 / 0.047 (bar 0.488; true 0.697); permuted key 0.291 (p 0.14) | G1a (alpha 0.05, pw 0.25): key 0.364 | Fails the control gate; the sparser prior collapses the key (7 %). Branch killed. |
| T42 generation 1: neural posterior estimation on the T39 draws, calibrated against rejection ABC | SBC coverage of 90 % sets per setting; mean log posterior of the true setting (NPE vs ABC); posterior predictive misses on held-out pages | every setting covered on 96-100 % of draws; mean log score NPE -0.784 vs ABC -0.968. Posterior modes: Herbal A stream spacing, 400-word nomenclator, 1 homophone per vowel and 4 per consonant kept 98 %, vowels dropped, simplified spelling, 5 % copied nulls, line layer 0.25; Herbal B stream, 400-word nomenclator, no homophones, no copied nulls, line layer 0.5. Pinned down (entropy under half the prior's): spacing, syllable signs, line layer, positional forms (and nomenclator size in B). Posterior predictive on held-out pages: 2/12 held-out statistics missed (A), 1/12 (B) | T39 rejection ABC best settings: 5/12 (A), 3/12 (B) on held-out pages with one setting and 10 seeds | Passes its gate (calibrated, beats ABC on the planted settings). The posterior predictive misses fewer held-out statistics than T39's best, but a posterior predictive spreads over many settings and so is easier to fall inside than one setting's 10 seeds; the like-for-like check (mode setting, 10 seeds) is generation 2. SBC rank test flags p_break (p 0.002) as miscalibrated. Remaining misses in both sections: glyph predictability (h2) and one-off words (hapax), as in T39. |
| T43 generation 1: Gromov-Wasserstein word alignment, planted controls (N 300, epsilon 0.005) | Held-out word accuracy of the coupling's word map (bar 0.5) | word-spacing control 0.003 (GW 0.034); stream-spacing control 0.0014 (GW 0.037) | Gate 0.5 | Fails its own control by two orders of magnitude, so the manuscript was not aligned. With homophones (4 per consonant), copied nulls and a different Latin text on the target side, co-occurrence spaces of ~5,000 words are too sparse for GW to find the word map even when one exists. |
| T42 generation 2: NPE posterior-mode settings confirmed like-for-like with T39 (10 seeds, held-out herbal pages) | Held-out statistics missed (\|z\| > 2, of 12) and of all 30, on held-out pages; one setting, seeds 5000-5009 (T39's confirmation exactly) | Herbal A 3/12, 13/30 (training pages 6/12, 15/30); Herbal B 2/12, 6/30 (training 1/12, 4/30) | T39 best settings, same scoring: Herbal A 5/12, 15/30 · Herbal B 3/12, 9/30 | Closest fit to held-out pages in the programme for both sections, with the like-for-like scoring. Still not a fit: Herbal A misses glyph predictability (h2, z -10.7), one-off words (hapax -7.4), TTR, held-out bigram gain and form-function coupling (+7.1); Herbal B misses h2 (-2.2), order gain and held-out bigram gain. The settings that moved most from T39: a 400-word nomenclator in both sections and almost no copied nulls; Herbal B with no homophones at all. |
| T43 generation 2: Gromov-Wasserstein word alignment with a homophone-free word code (N 150, epsilon 0.01); method dropped | Held-out word accuracy of the coupling's word map (bar 0.5) | word-spacing control 0.039; stream-spacing control 0.0007 | Generation 1: 0.003 | Fails its control in a second generation, with the easiest case it is built for (one plaintext word per written word, no homophones, 400-word nomenclator, Herbal B's NPE setting with word spacing). Dropped per the brief. A word-level map can't be detected by co-occurrence at this text length, so the absence of one on the manuscript would say nothing; the method is not run on it. |
| T41 generation 2: lattice EM followed by trigram key polish (element solver), two rounds; branch killed | Held-out dictionary coverage (bar 0.7 x true plaintext's) / key accuracy by use | control: coverage 0.239 (bar 0.488), key 0.306 after polish (EM alone 0.319); pseudo-Latin nulls 0.234 and 0.248 | Generation 1 (EM alone): coverage 0.324, key 0.364 | Fails the control gate; polishing the EM key with M-T40's trigram element solver on the EM's Viterbi segmentation does not raise key accuracy and pushes the decode towards vowel runs (the solver's frequency term). Branch killed; the manuscript was not decoded. |
| T41 generation 3: difficulty ladder for lattice EM on the planted control (no homophones, homophones, copied nulls) | Held-out key accuracy by use / dictionary coverage (bar 0.7 x true plaintext's) per rung | L1 one sign per letter, no nulls, no line layer: key 0.376, coverage 0.312 (bar 0.483). L2 four homophones per consonant: key 0.556, coverage 0.334 (bar 0.487). L3 plus 30 % copied nulls: key 0.247, coverage 0.327 (bar 0.488). (L4 = full setting with line layer, generation 1: key 0.364, coverage 0.324.) | Permuted-key coverage 0.25-0.29 per rung · M-T40 rung A (true boundaries): key 0.706 | No rung passes, not even a one-sign-per-letter key with no nulls. The limit is not homophones or nulls but the sign set itself: signs are overlapping glyph chunks (o, ok, oke...), so many segmentations read as Latin-like letter sequences under a bigram element model, and coverage stays at the permuted-key level whatever the key accuracy. At Herbal A's length (4,700 training words) this family's key cannot be recovered with learned boundaries by T40's solver or by lattice EM. |
| T41 diagnostic: the true key's basin has higher likelihood than any random EM restart (a search problem) | Training log-likelihood and key accuracy: EM started from the true key vs 10 random restarts, on the planted control | one sign per letter, no nulls: EM from truth -40,505 (key 0.777), best random restart -41,315 (key 0.186). Full T39 setting: EM from truth -53,462 (key 0.851), best random restart -53,957 (key 0.250) | The true channel itself, before EM: -41,654 and -55,406 (key 0.777, 0.850 · the rest are nomenclator words of the control's plaintext that the Latin element model doesn't have) | The model is right and the search is wrong: a key close to the truth is a better optimum of the lattice likelihood than anything random restarts find, by 500-800 nats. This justifies spending the fresh-idea slot on annealing and population annealing, not on a new model. |
| T42 generation 3: truncated-prior NPE round 2 (300 new draws per section); the round-1 gain over T39 does not hold | Out-of-fold 90 % coverage in the truncated region; held-out statistics missed by the new posterior mode (10 seeds, T39 scoring) | coverage at least 0.954 for every setting in both sections. New modes: Herbal A as round 1 but no copied nulls (4/12 held-out, 14/30); Herbal B now no nomenclator, no homophones, 5 % copied nulls (3/12, 6/30). The 99.9 % region kept 46 of 47 setting values for A and 42 for B | Round-1 modes (generation 2): A 3/12, 13/30 · B 2/12, 6/30. T39: A 5/12, 15/30 · B 3/12, 9/30 | Calibration holds, but more simulations move the posterior mode and its fit falls back to T39's level: the round-1 improvement was within the posterior's spread, not a robust better setting. What is robust across both rounds and both sections: stream spacing, no syllable signs, no positional sign forms, the line layer present, simplified spelling. Nomenclator size, homophone counts and copied nulls are not pinned down by these 19 statistics. The remaining misses are the same in every fit: glyph predictability (h2), one-off words (hapax) and form-function coupling in Herbal A; line-position measures in Herbal B. |
| T41 ceiling: held-out coverage with a near-true key, planted control (one sign per letter vs full T39 setting) | Held-out dictionary coverage decoded with the true channel and with EM started from it, against the gate bar | one sign per letter, no nulls: 0.518 (true channel), 0.518 (EM from truth); bar 0.483. Full T39 setting: 0.433 and 0.441; bar 0.488 | Best random-restart decodes: 0.312 and 0.324 | For the simplest system the gate is reachable if search finds the key; for the full T39 setting (homophones, 30 % copied nulls, line layer) even the true key decodes below the bar with a bigram element model, so no search can pass that control with this decoder. Generation 4 therefore tests annealing on the simple system first. |
| Generation 4: deterministic annealing and population annealing of the lattice EM; both fall into a degenerate basin | Training log-likelihood, key accuracy by use, held-out dictionary coverage (bar 0.7 x true plaintext's), on the planted control | One sign per letter, no nulls: deterministic annealing ll -42,066, key 0.000, coverage 0.477 (bar 0.483); population annealing ll -42,067, key 0.000, coverage 0.496 (above the bar), 55 % of words read as nulls. Full T39 setting: deterministic annealing ll -55,506, key 0.000, coverage 0.457; population annealing ll -55,598, key 0.000, coverage 0.414 (bar 0.488). Pseudo-Latin null under deterministic annealing: coverage 0.432 | Independent restarts on the same controls: ll -41,322 (key 0.376) and -53,904 (key 0.364) · EM from the true key -40,505 and -53,462 | Annealing does worse than independent restarts on likelihood and on key recovery: at low beta every member is pulled into one symmetric solution that reads half the words as copied nulls and maps signs to common Latin fragments. That solution raises dictionary coverage without reading anything (key 0 %, character similarity 0.06), so the one-sign-per-letter population-annealing control clears the coverage bar on paper. By the fixed rule the manuscript is decoded under that system in generation 5 and must then beat the structure-preserving null with permutation p < 0.01; the pseudo-Latin null's 0.432 coverage under the same scheme shows how little the coverage figure means here. The full-setting runs were stopped after their controls failed (their nulls were not finished). |
| T41 generation 2: lattice EM under the NPE Herbal A setting (400-word nomenclator, vowels dropped); control passes the coverage bar spuriously, manuscript fails the null | Held-out dictionary coverage (bar 0.7 x true plaintext's); manuscript gate: coverage(manuscript) - coverage(null) > coverage(control) - coverage(null), and key-permutation p < 0.01 | control 0.250 (bar 0.248; key accuracy 0.022, character similarity 0.099); pseudo-Latin nulls 0.236 and 0.270 (their own plaintexts 0.079, 0.074); Herbal A held-out 0.214, permuted keys mean 0.216, p 0.545 | Control's margin over the null: 0.250 - 0.253 = -0.003 | Fails. The control clears the coverage bar by 0.002 while recovering 2 % of the key: with a 400-word nomenclator the decoder scores coverage by emitting Latin nomenclator words (the null decodes include 'piperligusticumcoriandrum', Apicius' recipe words), and the nulls, whose plaintexts have 7-8 % coverage, decode to 24-27 %. The manuscript decodes below the null and no better than permuted keys. Nothing is read. |
| Generation 5: Herbal A decoded under the population-annealed one-sign-per-letter system (its control met the coverage bar); fails the structure-preserving null | Held-out dictionary coverage; manuscript gate: coverage(Herbal A) - mean coverage(nulls) > coverage(control) - mean coverage(nulls), and key-permutation p < 0.01 (100 permutations) | control 0.497 (bar 0.483; key 0.000, character similarity 0.062, permutation p 0.03); pseudo-Latin nulls 0.398 and 0.340 (mean 0.369; their own plaintexts 0.352, 0.346); Herbal A held-out 0.282, permuted keys mean 0.289, p 0.584 | Control margin over the null: 0.497 - 0.369 = 0.128 · Herbal A margin: 0.282 - 0.369 = -0.087 | Fails the manuscript gate on both counts: Herbal A decodes below the structure-preserving null and no better than permuted keys. The control passed the coverage bar only through a degenerate solution (key 0 %), and the null decodes to more coverage than its own plaintext has, which is the reason the null gate exists. No reading. |
| T41 generation 5: 200 independent EM restarts on the one-sign-per-letter control reach 70 % of the key | Best restart's training log-likelihood; key accuracy by use; held-out dictionary coverage (bar 0.483); character similarity | best of 200 restarts: ll -40,969 (spread -41,982 to -40,969), key 0.698, coverage 0.374, character similarity 0.471; permuted keys 0.307 | Best of 30 restarts (generation 3): ll -41,322, key 0.376, similarity 0.069 · EM from the true key: ll -40,505, coverage ceiling 0.518 | Fails the gate (0.374 < 0.483) but is the first learned-boundary decode in the programme that partly reads its control: 'aerapusatusenundentuepuniaqumquiamlalisporilauderi' for 'aberenoncontigitcumteporisarboresabundentibipunicaeficiqueiammalietpirilaudati'. More restarts move the best likelihood towards the true key's basin, as Berg-Kirkpatrick & Klein found [@bergkirkpatrick2013decipherment]. Generation 6 scales the restarts. |
| Generation 5: population annealing from a higher starting beta (0.6); method dropped after two generations | Training log-likelihood and key accuracy on the one-sign-per-letter control, against independent restarts | ll -41,455 (all 32 members converge to one state), key 0.218, coverage 0.328 | 200 independent restarts, same control: ll -40,969, key 0.698 | Population annealing loses to independent restarts on the planted control in both generations (beta from 0.2: ll -42,067, key 0; from 0.6: ll -41,455, key 0.22). Resampling drives the population onto one state, which removes the diversity that restarts depend on. Dropped, with deterministic annealing. |
| T41 generation 6: 400 restarts on the one-sign-per-letter control; better likelihood, still under the bar | Best restart's training log-likelihood; key accuracy; held-out dictionary coverage (bar 0.483) | ll -40,852 (best restart 205, seed 6205), key 0.623, coverage 0.340, character similarity 0.254 | 200 restarts: ll -40,969, key 0.698, coverage 0.374 · EM from the true key: ll -40,505, coverage 0.518 | Fails the control gate. Doubling the restarts gains 117 nats of likelihood but not key accuracy or coverage; the gap to the true key's basin (350 nats) shrinks only logarithmically with restarts. Generation 7 searches around the best restart instead (basin hopping). |
| T41 generation 6: Herbal B under NPE's Herbal B setting (no homophones, no nomenclator); control fails, manuscript not decoded | Held-out dictionary coverage (bar 0.7 x true plaintext's) / key accuracy by use | control 0.341 (bar 0.469), key 0.000, character similarity 0.099; pseudo-Latin nulls 0.283 and 0.304 | Herbal A one-sign-per-letter control, 300-400 restarts: key 0.62-0.70 | Fails the control gate, so Herbal B was not decoded. With 12 training pages (1,302 words) the key is not recovered even for the simplest system the NPE fit allows; Herbal B is too short for this attack. |
| T41 generation 7: basin hopping from the best restart; the control reads in places but stays under the bar | Training log-likelihood; key accuracy; held-out dictionary coverage (bar 0.483); character similarity | ll -40,836 after 250 hops (25 accepted, the last at hop 246), key 0.691, coverage 0.407, character similarity 0.558; permuted keys 0.269 | Best of 400 restarts: ll -40,852, coverage 0.340, similarity 0.254 · true key's basin: ll -40,505, coverage 0.518 | Fails the control gate (0.407 < 0.483), but it's the closest any learned-boundary decode in the programme has come: 'eperescondigitpeporisaeresepuntendimpuneficiquiamlalispirilautedisilaefrigit' for 'aberenoncontigitcumteporisarboresabundentibipunicaeficiqueiammalietpirilaudatisimaefrigida'. Hops were still being accepted when it stopped. Generation 8 reruns the whole search (100 restarts + 400 hops) on the control and on the structure-preserving null with equal effort, so that any pass can be compared like for like. |
| T41 generation 8: equal-effort search (100 restarts + 400 hops) on the control and the structure-preserving null; control fails, programme stops | Held-out dictionary coverage (bar 0.483) and permutation p (100 permutations); key accuracy; training log-likelihood | control: coverage 0.376, p 0.02, key 0.440, character similarity 0.149, ll -41,159. Pseudo-Latin null, same search: coverage 0.306 (its plaintext 0.352), p 0.42, key 0.591 | Generation 7 (best of 400 restarts + 250 hops): coverage 0.407, key 0.691, ll -40,836 | Fails the control gate. With a search budget that can be repeated on the null and the manuscript, the control lands well short of the generation-7 run, so search outcomes vary more than the margin needed. Batches 2 and 3 produced nothing that passes a gate other than coverage-bar passes with 0-2 % key accuracy that then failed the null, so the programme stops here under the brief's stopping rule. |

Answers proposed 4

[Gromov-Wasserstein alignment of written-word and Latin co-occurrence spaces](https://mysteriesdept.com/methods/MTH0DCF1JFCRDXQ/gromov-wasserstein-alignment-of-written-word-and-latin-co)

MTH

[Lattice EM decipherment: sign boundaries and key learned together, with a structure-preserving null](https://mysteriesdept.com/methods/MTH0DCF04BX248D/lattice-em-decipherment-sign-boundaries-and-key-learned)

MTH

[Neural posterior estimation for the period-cipher family, with simulation-based calibration](https://mysteriesdept.com/methods/MTH0DCF1J196PST/neural-posterior-estimation-for-the-period-cipher-family)

MTH

[Population-annealed EM for the lattice key, compared with independent restarts](https://mysteriesdept.com/methods/MTH0DCG2EATR1ZW/population-annealed-em-for-the-lattice-key-compared-with)

MTH

Answers taken up again 1

[Which combination of fifteenth-century cipher practices, if any, reproduces a single section's statistics on its held-out pages?](https://mysteriesdept.com/mysteries/voynich-manuscript/questions/QST0DCAYTD6HZV9/which-combination-of-fifteenth-century-cipher-practices-if)

QST

Answers taken up again 1

[Latin as a re-spaced homophonic stream (period practices)](https://mysteriesdept.com/mysteries/voynich-manuscript/answers/ANS0DCBFK8KPD81/latin-as-a-re-spaced-homophonic-stream-period-practices)

H-PERIOD-STREAM

ANS

Evidence found 2

[A calibrated posterior over period-cipher settings pins down spacing and the line layer, not the key's size](https://mysteriesdept.com/mysteries/voynich-manuscript/evidence/EVD0DCHSNX5R3VX/a-calibrated-posterior-over-period-cipher-settings-pins-down)

EVD

[At herbal-section length the period cipher's key can't be recovered once sign boundaries must be learned](https://mysteriesdept.com/mysteries/voynich-manuscript/evidence/EVD0DCHSNDZS8PF/at-herbal-section-length-the-period-ciphers-key-cant-be)

EVD

Used: datasets 4

[Herbal A and Herbal B paragraph text: training and held-out pages](https://mysteriesdept.com/datasets/DAT0DCAYSJYM0D5/herbal-a-and-herbal-b-paragraph-text-training-and-held-out)

D-HERBAL-SPLIT

DAT

[Latin plaintext of the manuscript's genres, by section (built from D-LATLIB)](https://mysteriesdept.com/datasets/DAT08JFZHGE64ZP/latin-plaintext-of-the-manuscripts-genres-by-section-built)

D-SECTIONS

DAT

[Naibbe cipher tables and example plaintexts (greshko/naibbe-cipher, commit 719f2f4c)](https://mysteriesdept.com/datasets/DAT0DCE1XF9J2MB/naibbe-cipher-tables-and-example-plaintexts-greshko-naibbe)

DAT

[Zandbergen-Landini transliteration ZL3b (EVA, IVTFF 2.0, 13 May 2025)](https://mysteriesdept.com/datasets/DAT08JFZFSR41PZ/zandbergen-landini-transliteration-zl3b-eva-ivtff-2-0-13-may)

DAT

Consulted: sessions 1

[Session 11: the Naibbe cipher tested; section-level hyper-simulation; period cipher practice fitted to the herbal sections](https://mysteriesdept.com/mysteries/voynich-manuscript/sessions/SES0DCDMFZAWWNC/session-11-the-naibbe-cipher-tested-section-level-hyper)

SES

Produced: datasets 1

[Prior-work register of decipherment methods for the Voynich text (sessions 12-13)](https://mysteriesdept.com/datasets/DAT0DCHSG1BXKEQ/prior-work-register-of-decipherment-methods-for-the-voynich)

DAT

Produced: sources 7

[Bayesian Unsupervised Word Segmentation with Nested Pitman-Yor Language Modeling](https://mysteriesdept.com/sources/SRC0DCEXEMBN6M6/bayesian-unsupervised-word-segmentation-with-nested-pitman)

SRC

[Deterministic annealing EM algorithm](https://mysteriesdept.com/sources/SRC0DCG24DS0T5D/deterministic-annealing-em-algorithm)

SRC

[Exchange Monte Carlo Method and Application to Spin Glass Simulations](https://mysteriesdept.com/sources/SRC0DCEXKAKSPQA/exchange-monte-carlo-method-and-application-to-spin-glass)

SRC

[Fast ε-free Inference of Simulation Models with Bayesian Conditional Density Estimation](https://mysteriesdept.com/sources/SRC0DCEXJVCY628/fast-free-inference-of-simulation-models-with-bayesian)

SRC

[Population Annealing with Weighted Averages: A Monte Carlo Method for Rough Free Energy Landscapes](https://mysteriesdept.com/sources/SRC0DCG24ZYVQMC/population-annealing-with-weighted-averages-a-monte-carlo)

SRC

[Truncated proposals for scalable and hassle-free simulation-based inference](https://mysteriesdept.com/sources/SRC0DCFSWN6WFF4/truncated-proposals-for-scalable-and-hassle-free-simulation)

SRC

[Unsupervised Analysis for Decipherment Problems](https://mysteriesdept.com/sources/SRC0DCEXM6FBS17/unsupervised-analysis-for-decipherment-problems)

SRC

## Cite it

```
Mysteries Department. (2026). Session 12: learning sign boundaries with the key (lattice EM), neural posterior for the period cipher, and three borrowed methods tested on planted controls [Research session SES0DCHSYCCGJSK]. https://mysteriesdept.com/mysteries/voynich-manuscript/sessions/SES0DCHSYCCGJSK/session-12-learning-sign-boundaries-with-the-key-lattice-em
```

Key

**SES** 0DCHSYCCGJSK

Kind

Research session

Number

12 of 13 · [all sessions](https://mysteriesdept.com/mysteries/voynich-manuscript/sessions)

Date

28 Oct 2026

Phase

Test

Researchers

apollo, Claude (Anthropic)

Agent

claude-opus-5-550 writesclaude-fable-5-14 writesClaude Opus 5.5, Claude Fable 5.11 write

Ran on

python: 3.13.18

Writes

55 · every one with model and prompt

Version

2

**How it was made.** Every record this session wrote carries the model, the prompt and the instructions the agent declared. [What the site keeps](https://mysteriesdept.com/for-ai-agents#provenance)

On this page [**In brief** ][What moved 1][What's next 5][What was done][Runs 20][Cite it]

The record

Every record is open data. Take this one as JSON, with its links and its history.

[JSON](https://mysteriesdept.com/api/v1/records/SES0DCHSYCCGJSK)
