# Session 19: Do the two red mark types change the counter?

Date: 19 September 2026.

**Result: no verified new plaintext.** Tested seven explicit counter rules using the 10-dot and 13-dot mark positions mapped in Session 18. All 21 constructed controls recovered their known plaintext within the tested family. None of the 21 selected real-text candidates produced a coherent continuation.

The marks remain a genuine visual distinction. This experiment does not establish that they control encryption, and it does not erase their possible structural or grammatical role.

## 1. Fixed source and boundaries

The target is the same **1,589-rune section** spanning part of LP2 page 33 through page 39. The [Session 18 pixel audit](/sessions/18.html) supplies the mark types and positions; no new markers were guessed from the cipher outputs.

| Type | Rune offsets after the section's start |
|---|---|
| Red 10-dot | 754, 1307 |
| Red 13-dot | 8, 1468, 1471, 1589 |
| All transcribed full stops | 8, 133, 139, 277, 334, 372, 426, 462, 754, 893, 984, 1082, 1178, 1290, 1307, 1441, 1468, 1471, 1589 |

Offsets are zero-based boundaries before the next rune. The terminal mark at 1589 has no following rune in this section and therefore no observable effect on a reset test. A mark ending the previous block at the section's initial boundary is likewise not an additional internal reset.

The two 10-dot marks enclose the complete numbered list: **553 runes**, from 754 through 1306. Within that span, the opening/closing interpretations below deliberately keep the five numbered items in one continuous local stream.

## 2. Seven rules specified before inspecting outputs

All counters start at zero. Only runes advance them. Spaces, line breaks, page breaks, punctuation and Arabic labels do not consume key positions. “Reset” means that the next rune uses counter position zero, plus the same fitted offset used everywhere else.

| Rule | Exact behavior |
|---|---|
| Continuous baseline | Never reset inside the section. |
| All full stops | Reset at every transcribed full stop, regardless of its visible color or shape. |
| All red marks | Reset at every audited red 10-dot or 13-dot mark; ignore black full stops. |
| Only 13-dot marks | Reset at red 13-dot marks; ignore the 10-dot marks and black full stops. |
| Only 10-dot marks | Reset at each red 10-dot mark; ignore 13-dot marks and black full stops. |
| Bracket, paused outer counter | Reset normally at 13-dot marks. At the first 10-dot mark, save the outer counter and start a local counter at zero. At the second, resume the saved outer counter. The enclosed list does not advance the outer counter. |
| Bracket, advancing outer counter | Reset normally at 13-dot marks. Give the enclosed list a local counter starting at zero, then resume the outer counter as though it had counted all 553 enclosed runes. |

The bracket rules use the single observed pair in this section, with no nesting or extra exception rules. The dot counts classify the marks; the numbers 10 and 13 are not themselves added to the key.

### A concrete difference after the list

The first internal 13-dot reset is at offset 8. Consequently, the counter has reached **746** at the list's opening boundary, offset 754. At the first rune after the list, offset 1307, the three related rules predict:

| Rule | Counter index at offset 1307, before the common fitted offset |
|---|---:|
| All red marks | 0 |
| Bracket, paused outer counter | 746 |
| Bracket, advancing outer counter | 1299 |

These three rules have **identical counter indices before the closing 10-dot mark**. They differ for the next **161 runes**, offsets 1307–1467. At 1468, the next 13-dot reset makes their counter indices identical again. This is the interval that can distinguish their predictions when the numerical parameters are the same.

## 3. Numerical streams and selection

Use the same three streams as Session 17: **primes minus one**, **integer totients**, and **Fibonacci numbers**, reduced modulo 29. Prime-minus-one starts at 1; the integer-totient array uses the explicit convention q[0] = 0; Fibonacci starts 0, 1.

The decoding rule is **p = a·c + b·q[index + offset] + shift (mod 29)**. Here c is the zero-based rune value, a and b are independently +1 or −1, the common offset ranges from 0 through 32, and the common shift ranges from 0 through 28. Each candidate uses the same stream and arithmetic parameters across the whole section.

There are **80,388 settings**: seven policies × three streams × 33 offsets × four sign combinations × 29 shifts. Counts include overlapping transformations. No selectively unencrypted runes, fitted per-block keys, different languages, reading reversals or changes of alphabet were introduced.

For each of the 21 stream/policy families, select one candidate using only the first **984 runes in 220 words**. This prefix includes the text before the list and numbered items 1 and 2. The remaining **605 runes in 135 words** are reserved for continuation assessment: items 3–5 and the text after the closing 10-dot mark. The cut is a real word boundary.

The closing mark at 1307 and the entire 161-rune distinguishing interval lie in that continuation. No settings are refitted there. Scoring uses the existing boundary-aware LP1 English rune model.

This is separation for parameter selection within the current experiment. It is not a historically unseen corpus: these pages have appeared in earlier sessions. Continuous and full-stop reset rules also overlap prior arithmetic tests. The added hypotheses concern the image-audited mark classes and the two bracket-counter rules.

## 4. Controls

Seven hand-specified index fixtures check every policy, including the counter values immediately after closing a bracket.

Twenty-one constructed encryption controls cover every stream/policy combination. Each uses the **180 known plaintext runes from LP2 pages 56–57**, joined at their existing word boundaries, with simulated mark positions. These pages are outside the LP1 scoring-model training corpus. The control selects arithmetic parameters from the first **69 runes** and checks the remaining **111**, including a simulated closing bracket.

Encryption uses a separate scalar state machine; the search uses vectorized counter indices. Nonzero offsets and shifts are used, and both arithmetic signs are represented. Direct replay and the within-family parameter search recover **all 180 plaintext runes exactly in all 21 controls**.

The search is told which stream/policy family each control uses. These controls verify recovery within that family, not automatic identification of the correct family among policies with identical prefixes. They are also much shorter than the real section and do not measure success against every possible unknown cipher.

## 5. Results

For each row and stream below, the parameters were chosen on the 984-rune prefix. The table shows the unchanged candidate's score on the 605-rune continuation.

| Counter policy | Primes − 1 | Integer totients | Fibonacci |
|---|---:|---:|---:|
| Continuous | −5.3461 | −5.2605 | −5.2732 |
| All full stops | −5.3585 | −5.2324 | −5.4149 |
| All red marks | −5.3934 | −5.3392 | −5.4456 |
| Only 13-dot marks | −5.2849 | −5.3684 | −5.2375 |
| Only 10-dot marks | −5.4922 | −5.3063 | −5.4066 |
| Bracket, paused outer counter | −5.3753 | −5.2507 | −5.3763 |
| Bracket, advancing outer counter | −5.4321 | −5.3367 | −5.2694 |

Higher scores mean a closer fit to this small language model. These are descriptive rankings, not calibrated probabilities or significance tests. Small score differences among unreadable outputs are not evidence of a solution.

The best prefix score belonged to the **ordinary full-stop/Fibonacci baseline**, approximately −5.0139. Its continuation scored approximately −5.4149 and remained unreadable. No mark-specific candidate produced a coherent passage either.

The complete 605-rune continuation of every selected candidate was inspected, together with the first 150 rendered characters of each selection prefix. That review includes the complete 161-rune distinguishing interval for every candidate. **No coherent plaintext emerged.** The other tens of thousands of parameter outputs were scored automatically, not manually read.

The all-red and two bracket policies have exactly tied prefix scores within each stream because their prefix schedules are identical. The selected arithmetic parameters are therefore identical too. The implementation explicitly checks that equality. Those ties are expected duplicates, not three independent confirmations of a pattern. Their different continuations after the closing mark all failed the readability check.

Full selected outputs, parameters, scores, boundary indices, input hashes and control results are retained in [colored_reset_results.json](/files/colored_reset_results.json).

## Interpretation and next decision

This pass does **not support the seven tested counter rules with these three simple numerical streams**. It does not prove that the red marks have no cryptographic function. Different keys, mark-dependent substitutions or a non-counter mechanism remain untested.

The visual evidence from Session 18 still stands: the two 10-dot marks enclose the full list and differ from the nearby 13-dot marks. That could reflect document structure without controlling the cipher.

Before adding more arithmetic variants, the more informative next step is to locate the same mark shapes in **already solved pages** and compare their function against known plaintext. A consistent role in headings, paragraphs, lists or quoted material would help separate normal punctuation from a plausible encryption instruction. That comparison has not been completed in this session.

## Reproduction

Run [colored_reset_pass.py](/files/colored_reset_pass.py) with Python and NumPy beside the existing lp_core.py, word_core.py, transcription and visual_audit_results.json. No network calls are made.

- [Fixed search configuration](/files/colored_reset_plan.json)
- [Complete selected outputs and verification record](/files/colored_reset_results.json)
- [Source-pixel punctuation audit](/sessions/18.html)
- [Interactive image viewer](/visual-lab.html)

The fixed configuration is written before control and candidate results are computed. No new historical-source claim, authenticated message, creator identity or verified plaintext is added by this experiment.
