# Session 31: Do the rare doubles occur in bursts?

Date: 20 September 2026.

**Result: none of the three fixed checks detects unusually clustered repeat events.** The observed short gaps, longest empty stretch and absence of triples are ordinary under the section-conditioned placement model. This supplies no trigger for a new key search and does not prove that the events are independent.

Session 30 found no persuasive periodic phase. This pass checks nonperiodic clustering, using the same 86 repeat events across eight substantial sections.

## Three checks fixed before execution

| Check | Exact definition | Direction tested |
|---|---|---|
| Short gaps | Count distances of at most 10 rune positions between **consecutive** double-event starts, pooled across sections | More close gaps |
| Long gap | Largest stretch of eligible neighboring pairs with no double, anywhere in the eight sections; include section-leading and section-trailing stretches | Larger maximum empty stretch |
| Overlap | Count distances of exactly one between consecutive double-event starts, corresponding to AAA | More overlapping doubles |

Event positions refer to the left rune of a matching adjacent pair. AAA has events at two successive positions; AAAA contributes two overlaps. The ten-position threshold was selected before inspecting the spacing results; no other thresholds were tried. The long-gap test counts empty edges between events, not the bounding events, words or printed lines.

Section boundaries are not crossed. There are 12,939 eligible edges, 86 events and 78 consecutive-event gaps: each of the eight sections contributes one fewer gap than its number of events. The longest-gap statistic is already the maximum over all sections, so its simulated reference also searches all sections.

Rune-stream positions ignore non-rune material. An interval can span punctuation, a page boundary or a numerical block inside a section. It should not be interpreted as an uninterrupted printed line of glyphs.

## Comparison and correction

Generate **99,999** random event configurations using seed **3301031**. In each section, uniformly choose distinct event locations while preserving its actual count: 4, 6, 9, 10, 11, 13, 12 or 21. The same simulated configuration is evaluated by all three checks.

Use one-sided upper-tail comparisons with the plus-one Monte Carlo convention, then multiply each comparison by three and cap at one. This Bonferroni correction covers the three declared tests despite their overlap. It does not cover every hypothesis from previous sessions.

The randomization relocates event labels, not runes. It assumes event positions are exchangeable within a section and does not preserve named-rune double counts, page event counts or local dependencies. It is a reference model for these spacing questions, not a complete model of encryption.

## Results

| Statistic | Actual | Simulation mean | Central 95% range | Raw upper-tail comparison | Three-test adjusted |
|---|---:|---:|---:|---:|---:|
| Consecutive-event gaps ≤10 | **4** | 5.354 | 2–10 | 0.80023 | 1.00000 |
| Longest empty stretch, in neighboring-pair positions | **661** | 664.511 | 465–985 | 0.44635 | 1.00000 |
| Overlapping doubles | **0** | 0.551 | 0–2 | 1.00000 | 1.00000 |

The longest interval lies in section 7: edge offsets 883 through 1543 inclusive, or [883, 1544) in zero-based notation. It contains 661 consecutive nonmatching neighboring pairs. The observed maximum is close to the simulated mean maximum, so its length is not itself unusual under this reference.

Zero triples does not establish a rule prohibiting them. The comparison expects substantially fewer than one overlap on average, and zero lies in its ordinary range. Conversely, these one-sided tests were specified to detect bursts and excesses; unusually regular spacing or a deficit of overlaps was not separately tested.

An adjusted comparison of one is a capped tail calculation, not certainty that the null model is true. The tests find no evidence for their specified effects with this sample and these assumptions.

## Calculation and detection controls

The event offsets were checked against the complete Session 27 inventory. A manual example verifies the boundary convention: events at offsets 1, 2 and 8 among 12 eligible edges have two short gaps, a longest empty stretch of five, and one overlap.

All 56 placements of three events among eight edges were enumerated. Their average short-gap count and overlap count agree with analytic calculations, and the minimum and maximum longest empty intervals agree with the expected boundary cases. For the real section sizes, analytic expected totals are **5.35175** short gaps and **0.55201** overlaps, closely matching the simulation means.

As a deliberately strong detection control, put each section's events consecutively at its beginning while keeping all section event counts unchanged. This produces 78 short gaps, a longest empty stretch of 3,294 edges and 78 overlaps. All three adjusted comparisons are 0.00003, the three-test simulation floor. This is an extreme event-label construction, not encrypted text or a measured sensitivity limit.

## What this changes

The broad shortage of repeated neighbors remains well supported by the inventory-conditioned analysis in Session 29. The locations of its 86 exceptions have now supplied no convincing signal in the tested layout features, periodic phases or these three spacing checks.

That is a reason to pause further speculative searches based only on the exception locations. It is not a reason to discard the repeat shortage itself. A concrete candidate mechanism still needs to account for that shortage, its continuation across word boundaries, the occasional repeats of many rune identities, and the known repeated six-rune phrase.

This pass identifies no local reset, burst trigger, key or plaintext. A proposed mechanism should be specified independently, tested on constructed examples and then judged against the combined constraints. Expanding thresholds after seeing these results would create additional choices without a new source of evidence.

## Reproduce and inspect

- [Analysis code](repeat_spacing_audit.py)
- [All consecutive-event gaps, section counts, longest intervals and controls](repeat_spacing_results.json)

Run with Python and NumPy beside lp_core.py, the master transcription and double_context_results.json. No network calls are required. The result records the master transcription hash. All text has been inspected in earlier sessions, so this is retrospective work rather than validation on untouched data. No fresh full-image transcription or decryption was performed.
