Connected and Component Results Under Their Registered Comparators
The connected evaluation is reported first, followed by the historical stage, generation and individual-channel experiments. Their observations, populations and scoring routes differ; a component gate result is not an end-to-end measurement of the connected runtime.
Connected inference on the locally frozen GUM population
tbl. 7 reports the paired document result and full scoring population. fig. 13 separates the implemented causal schedule from this paired comparison; its arrows do not attribute the aggregate gain to individual channels.
The connected runtime was evaluated on the previously unexamined
portion of a frozen UD English-GUM test input (Zeldes 2017). The
locally specified protocol excludes 8 documents inspected in the
preceding bounded development run, leaving 22 paired documents. This is
local prospective specification within the development effort, not
independent external registration or replication. Model parameters and
train-only bridges remain fixed; the connection strength is 0.5. The
connected arm is called integrated in the recorded data.
Its comparator disables every named channel while retaining the same raw
observation encoder, so it is a channel ablation rather than a wholly
independent representation.
Only source # text comments enter inference, joined in
document order. Source sentence boundaries are not separately supplied.
The runtime lowercases lexical runs restricted to the American Standard
Code for Information Interchange (ASCII), with punctuation defining its
own sentence boundaries, and scores letters plus a space after every
retained token. This normalized stream is not the original Unicode text
or byte stream. UD UPOS, dependency, morphology, case, phoneme and
sentence-type labels are withheld from inference.
| Quantity | Recorded result |
|---|---|
| Paired documents | 22 |
| Source sentences | 1040 |
| Source characters | 105,803 |
| Normalized lexical tokens | 18,188 |
| Scored normalized characters, including token spaces | 102,522 |
| Integrated mean document-level character log loss | 1.9345924139381503 |
| Named-channel-disabled mean document-level character log loss | 2.3766101701632905 |
| Mean paired gain, named-channel-disabled minus integrated | 0.4420177562251402 |
| Paired document-bootstrap interval | [0.42010385279024465, 0.46325671494396264] |
| In-vocabulary lexical tokens | 13,653 |
| Out-of-vocabulary lexical tokens | 4535 |
| Lexical vocabulary coverage | 75.065977567627% |
The full-stream closed-vocabulary word loss is infinite because out-of-vocabulary tokens receive zero word probability. Vocabulary coverage accompanies the character result so a finite character loss cannot conceal unsupported words. This comparison does not establish semantic comprehension, a global exact posterior, or generalization beyond the specified normalization, population and engineering setting. Historical stage and channel metrics reported later remain their original independent estimands. Log loss is appropriate for assessing the probability assigned to the observed outcome (Gneiting and Raftery 2007), but its propriety does not make differently normalized streams comparable. Here both arms score the same normalized characters, and the paired contrast concerns the fixed named-channel intervention as a whole; it does not identify a contribution from each channel or validate the linguistic meaning of its states.
The input corpus digest begins cd96a285e733, the local
protocol digest begins c2ad1ee3b9aa, and the
execution-input digest begins 0cd3b86fd81f.
scripts/record_connected_gum_claims.py records the complete
source/input binding, per-document paired summaries, exclusions and
environment alongside the ledger; the report digest begins
045d953dd1d4. Reproduction requires these exact inputs
rather than a moving upstream treebank.
Historical component gate outcomes and their scoring routes
The six levels are built and have recorded gate outcomes; Stage 5
passes on the widened observation alphabet against a bar registered
before its artifact existed — a development-session specification with
no held-back replication available, because that partition was already
spent (sec. 5.7.3) — while
the case-only clause model it displaced is retained as a non-passing
ablation with an unresolved privileged-label gain. Stage 6’s primary
document-clustered analysis spans zero on the development population and
excludes zero on the held-back one, at the coverage the development
analysis uses and not at the family-corrected one. This section
consolidates the sequence-model measurements of the first two — the
letter level of sec. 4.3 and the phoneme
level of sec. 4.4 — where the
perplexity ladder and the information budget live. Both are pymdp
Agent instances whose learned sequence statistics live in
the transition matrix B; at Level 2 the emission
A is a learned letter-given-phone likelihood over
co-indexed pairs rather than the identity, so that level performs
inference rather than a state read-off. The later levels’ results,
generation, the cross-level channels and learning are reported below as
well, and their instruments are described where they are built: the word
and case levels in sec. 4.5 and sec. 4.6,
the clause and narrative levels in sec. 4.7 and sec. 4.8, and the
cross-level channels in sec. 4.10, with the historical
significance family judged against its declared corrected threshold in
sec. 15.2. Quantitative
figures and these tables consume the same recorded claims, with source
and provenance checks intended to catch stale or inconsistent outputs.
That shared source does not substitute for checking the rendered
artifacts.
Two conditions established in sec. 15.2 govern the historical paired comparisons summarized below, and neither is repeated at each individual result. The first condition is about the sampling unit. The historical paired tests are computed at a unit nested inside the unit its corpus samples — and each has been recomputed at that outer unit (sec. 4.11). By construction, this recomputation never changes the effect size itself; it only changes the interval around it, and the intervals move in both directions (tbl. 33): clustering widens some arms and tightens others. So the nesting is not a uniform penalty, and its direction could not have been signed without measuring it. The second condition is about the test family. That family was assembled retrospectively, on the population every gate in this project was revised against. So a test crossing the corrected threshold is a corrected-threshold survivor on the development population, not a confirmed effect on fresh data, except for the held-back rescoring of sec. 10.6. Neither condition moves an effect size; both instead bound what the accompanying inference means.
The tables below report the per-level comparators (tbl. 8, tbl. 10, and tbl. 11), restate each as a consolidated ladder, and add the information-budget accounting that sec. 4.2 depends on. A reader following the argument rather than the construction can read this section and sec. 4.2 alone.
The gate audit found that every declared threshold was defective as declared. Stage 1’s threshold sat beyond the information-theoretic ceiling of the distribution the model was fitted to. Stage 2’s sat below the trivial baseline, against an oracle that does not exist. The later-stage declarations failed through vacuity, a population-dependent double defect, or mis-scoping. Beyond these per-stage defects, the audit found two general lessons. First, a reproducible subsample is not a representative one. Second, a context-free comparator, though necessary, is not sufficient. Stage 1’s ceiling is stated under the training distribution. The population qualifier is not a hedge: the fitting distribution contains only about half the first-order information the declared target demands. The target exceeds that ceiling by a factor of 1.95, so no smoothing or implementation can supply the shortfall from the data the model was given. Nothing here, however, bounds the held-out passage’s own first-order optimum. The defects are worked through stage by stage below; the re-runnable audit script, the pre-build checklist, and the Level 3 mis-wiring catalog are set out in sec. 10.
Level 1: the letter bigram clears the restated unigram bar
The bigram agent beats the unigram bar
The agent runs the filtering recursion of eq. 6 over held-out prose, accumulating eq. 7. The uniform, unigram, mis-wired, and training-distribution references bracket it; each is necessary to read the result.
| Comparator | Perplexity | Uses the previous letter? |
|---|---|---|
| Uniform over the alphabet | 30 | no |
| Context-free unigram letter frequencies | 19.9558 | no |
Mis-wired variant: the bigram matrix in the emission
A |
27.2499 | inverted — yields the preceding symbol |
Bigram agent: the bigram matrix in the transition
B |
11.9215 | yes |
| Order-1 optimum on the training distribution, \(\exp H_{\text{train}}(X_t \mid X_{t-1})\) | 10.7506 | yes, optimally |
The agent beats the context-free unigram baseline by 8.0343 perplexity units, which is the gate. It does not beat the order-1 reference: 10.7506 is eq. 8 evaluated on the training counts, so it is where an optimal first-order model lands on the distribution it was fitted to rather than a bound on what any model scores on this passage (sec. 3). In nats the agent sits at 2.4783 against that reference’s 2.375 — above it, which is the ordinary direction for a held-out score measured against a training-set optimum.
That is 3.5755 bits per character, a value in the range expected for a deliberately low-order character model. It is not a replication of a published figure and must not be read against one: Shannon (1951) reports letter entropy falling as the conditioning context lengthens and estimates the long-context value through human prediction experiments, over a smaller alphabet than the one used here, so the longer-context estimates in that literature are measuring a different quantity. The letter ladder below states the alphabet, normalization and corpus differences that each move the number. fig. 14 arranges these comparators and the phoneme level’s on one axis; the gap from uniform to unigram there is the part available without using any context at all, which is why the gate is stated against the unigram rung.
compute_perplexity reports a number produced by
pymdp infer_states and
update_empirical_prior calls, one pair per character, not
by a shortcut around them. The value is cross-checked against the
closed-form numpy Markov chain in
src/ailm/verification/oracle.py to the tolerance pinned in
tests/test_stage1_gate.py, so the perplexity reflects
pymdp actually performing the inference — and a mis-wiring
shows up there as a disagreement of roughly the distance between the
mis-wired and correct rows of tbl. 8,
which is a far louder signal than either number alone.
Restated unigram gate and its controls
The level’s gate is the context-free unigram comparison, which is both reachable and diagnostic. A model can clear uniform while carrying no context whatsoever. Clearing the unigram rung is consistent with conditioning on the previous letter, but it does not prove that conditioning is happening: the bar is estimated on training counts and scored on a finite passage, so another context-free distribution can land below it through distribution shift alone. What carries the attribution is a separate context-destruction control. It takes the same trained conditionals and rotates them onto the wrong contexts; that rotated model scores 159.3667 against the unigram bar’s 19.9558 on the identical positions. So the gate’s margin does not survive destroying the context-to-conditional assignment, even while every individual conditional distribution is kept intact. The unigram rung and that control together test the thing the level claims to do.
The alternative wording of the gate — a gain of at least 2 nats over uniform — asks for more first-order information than the training distribution holds. The argument for this takes one pass over the counts. The gain a first-order model can realize on the distribution it is fitted to is at most the difference between the uniform entropy and the conditional entropy of eq. 8. On the Brown counts, that difference is 1.0262 nats, so the 2-nat target exceeds the level’s entire order-1 information budget by a factor of 1.95. The bar was calibrated for a model class this level does not implement. The shortfall is in the order of the model rather than in the code, so no implementation, tuning choice, or smoothing constant can reach it on that distribution. The held-out passage is a different population, though, and needs its own bound. eq. 21 supplies that bound: it caps the order-1 gain available across all 1323 positions this level is scored on at 1.6106 nats, including the fixed uniform-start prediction, and this bound is also short of the target. So the conclusion survives on both populations rather than being carried from one to the other. Against the training distribution’s 1.0262-nat budget, the agent realizes 0.9229 nats on held-out prose, or 89.9% of it — a failure under the 2-nat wording, and a result close to the training distribution’s first-order optimum. Measured against the bound on the passage it is actually scored on, the same realized gain is 57.3%. That is the same-population figure, and the one to quote where a same-population statement is wanted. The first percentage, by contrast, crosses populations — a held-out gain measured against a training-set budget — and it is reported as a descriptive ratio for exactly that reason, not as a bound the agent is proved to respect. fig. 25 draws both readings on the same nat axis. sec. 4.2 treats this as the worked example of a threshold beyond its measured ceiling, and states why the wording must not be inherited by a later stage.
Letter perplexity from uniform to the empirical first-order optimum
This table restates Level 1’s comparators as a single ladder, from a model using no context at all up to the best any first-order model can do.
| Comparator | Perplexity | Uses the previous symbol? |
|---|---|---|
| Uniform over the letter alphabet | 30 | no |
| Context-free unigram letter frequencies | 19.9558 | no |
Mis-wired variant: bigram matrix in the emission A |
27.2499 | inverted — yields the preceding symbol |
Bigram agent (A identity, B
learned) |
11.9215 | yes |
| Empirical order-1 optimum | 10.7506 | yes, optimally |
fig. 14 plots tbl. 9 alongside its Level 2 counterpart on a shared axis, which is where the structural similarity between the two levels is easiest to read: in both cases the model sits close to the empirical order-1 optimum and far from uniform, and the interval between unigram and optimum — not the interval between uniform and model — is the space in which a bigram model can distinguish itself.
3.5755 bits per character sits in the range of published estimates of
English letter entropy at low context order. Shannon (1951) measures that entropy
dropping as the conditioning context lengthens, and later bounded
estimates place fully contextual English well below any order-1 figure
(Cover and King
1978; Brown et
al. 1992); the value here belongs to the
shallow end of that progression, which is where an order-1 model should
land. This is a consistency check, not a replication, and it is worth
being precise about why it cannot be one. The alphabet here adds space,
period, apostrophe, and hyphen to the 26 letters, so uniform over it is
30 rather than Shannon’s 27; the normalization collapses whitespace runs
and strips spaces before . and '; the training
corpus is Brown (Francis and Kučera
1979; Bird et al.
2009) and the evaluation is
held-out prose. Any of those choices moves the number, so the agreement
establishes that nothing is badly wrong rather than that a published
figure has been reproduced.
Level 2: filtering beats the context-free bar, by a thin decoding margin
Part A: the phoneme sequence model beats its context-free bar
This table reports the phoneme sequence model’s in-sample comparators against uniform, unigram, and the order-1 optimum, on the full dictionary.
| Comparator | Perplexity | Uses the previous phone? |
|---|---|---|
| Uniform over the 39 phones | 39 | no |
| Context-free unigram phone frequencies | 27.5944 | no |
| Phoneme bigram agent | 16.7445 | yes |
| Exact all-position order-1 optimum | 15.8313 | yes, optimally |
The same reachability argument as Level 1 applies with less room. The total gain available over uniform at this level is 0.9016 nats on the exact all-position population (and 0.9744 nats under the more optimistic transitions-only relaxation), both below Level 1’s inherited 2-nat threshold, so that wording is unreachable here before a line of code is written. fig. 14 shows both levels’ rungs together.
Family-disjoint evaluation and lexical overlap
The shared-prefix bound is also measured from the inside rather than
only stated. A family-disjoint arm assigns whole 4-character prefix
families to one side of the split, using the same seedless stride
construction lifted one level up: every fifth sorted family is held out.
As a result, no held-out word of length 4 or more shares its 4-character
prefix with any training word (0% shared, by construction, against the
interleave’s 82.5%). Re-fitting the identical decoder and the identical
context-free lookup on the disjoint train side gives 70.515% against
70.128% over 43,107 positions — a margin of 0.387 points beside the
interleave’s 0.546, with discordant counts 1387 against 1220 and exact
McNemar p = 0.001145. This is an exploratory robustness arm:
its direction was prospectively specified within the development
session, but its p-value stays outside the frozen significance family,
so it is a bound rather than a second significance claim. Read as a
bound, it cuts both ways. Morphological-neighbor transfer accounts for
part of the interleave margin, but most of the margin survives with the
neighbors removed, so the left-context mechanism is not an artifact of
catalog teaching catalogs. The disjoint
assignment has its own recorded price, though: holding out whole
alphabetical families moves the initial-letter total variation to
0.03458, well above the interleave’s 0.00085. That is why this arm
bounds the shipped result rather than replacing it.
The bound is itself partitioned. The same disjoint held-out set can
be grouped by morphological family — the identical four-character family
key the split assigns sides with — and each family can then be scored
against the same context-free bar with the same paired test. Doing so
asks whether the disjoint margin is a level-wide property or the average
of unlike parts. The answer, prospectively specified within the
development session in the arm’s decision stub, is that it is not
level-wide. Across the 2422 held-out families, 241 carry at least 40
scored positions, and only 104 of them show a positive margin — a share
of 0.4315, against the stub’s registered bar of more than one half. The
pooled disjoint margin of 0.387 points is therefore a majority-null
average, not a property most families carry. The largest evaluated
family, cons, scores 72.529% against 73.042% over 779
positions (margin -0.513 points, exact p = 0.3438). By
contrast, the amer family’s margin is -16.201 points over 179 positions.
This measured heterogeneity is real rather than an artifact of the
scoring, for two reasons. First, position-weighted, the per-family
scores reproduce the disjoint arm exactly (70.515% over 43,107
positions, the prospectively specified positive control). Second, a
deterministic reversal control — reversed pooled correctness vectors
paired with the same family sizes — reaches a largest per-family margin
of only 66.667 points, against the real assignment’s 100. Read together
with the disjoint bound above, the family partition sharpens it: the
surviving margin is concentrated in a minority of families, which is one
more reason the length-matched subset is not English and accuracy
figures on it do not transfer. Per-family p-values are diagnostics of a
diagnostic arm and join no significance family; this partition reports
the shape of the margin across the dictionary, not a new significance
claim.
Forward filtering beats the context-free baseline
This table compares the context-free lookup, the filtering decoder, and the whole-word smoothing and Viterbi references on the same held-out positions.
| Decoder | Position accuracy (%) | Context used |
|---|---|---|
| Context-free per-letter \(\operatorname*{arg\,max}_p\, p(\text{phone} \mid \text{letter})\) | 70.255 | none |
Full-set NumPy forward filtering, after a bounded
pymdp check with 0 decision disagreements |
70.801 | left only |
| Forward-backward smoothing | 75.642 | whole word |
| Viterbi maximum-a-posteriori path | 75.306 | whole word |
On a length-matched subset the co-indexed letter alone is nearly
sufficient, which is precisely why the context-free baseline is already
strong and why the headroom for context is thin. Filtering captures part
of that headroom and no more, because infer_states
conditions on observations up to the current position and never revisits
them. Smoothing and Viterbi see the whole word and gain several points,
as tbl. 11 records.
Reporting a smoothed figure would flatter the gate while describing a
different whole-word computation. The canonical full-set filtering
statistic is evaluated by the NumPy oracle only after a bounded
live-pymdp comparison finds 0 decision disagreements; no shipped Level 3
path consumes Level 2’s posterior. fig. 15 plots the
baseline, the filtering decoder and the smoothing reference, and the
baseline and the filtering agent are visually indistinguishable at full
scale — which is the honest picture of a 0.546-point margin and the
reason the next subsection exists.
Decoding margin and the lookup comparator
Before the margin is read at all, the baseline comparison bounds what it can mean. A left-context lookup over the observed symbols, with 677 parameters, no latent state and no inference at decode time, scores 72.8188% on this same population against the shipped model’s 70.801%. It does not merely clear the declared bar; it beats the model by 2.0177 points, several times the margin this section is about. Clearing a context-free comparator therefore does not show that latent-state filtering is what produced the gain (sec. 10.1.6).
McNemar’s test conditions on the observed count of discordant pairs.
The discordant-pair interval constructed from it retains that
conditioning; it is not an unconditional interval for the difference in
marginal accuracies (McNemar 1947; Newcombe 1998). The margin is
0.546 accuracy points, and the gate does not rest it on a comparison of
aggregates. It compares the decoders in paired form instead:
decode_positions and baseline_positions line
them up position for position, and the test runs only on the positions
where the two disagree.
That test is the exact conditional form of McNemar’s test (McNemar 1947). Its statistic is the two-sided exact binomial of eq. 24, not the \(\chi^2\) approximation to it. Over 42,820 held-out positions there are 2524 discordant pairs: 1379 where only filtering is correct against 1145 where only the baseline is, p = 3.468e-06. The pairing is what carries that result: at 0.546 points the difference is too small for an independent-proportion approximation to bound, so the uncertainty has to be evaluated on the paired predictions rather than on two aggregates. sec. 4.11 gives the reason two aggregates cannot establish a margin this thin, derives the exact form, and carries the identical-predictors control that keeps the test itself falsifiable.
Significance here depends on using the whole held-out set.
_iter_pairs in src/ailm/levels/phoneme.py
takes an evenly spaced stride and never a prefix wherever the evaluation
has to be subsampled at all. The pair list is sorted alphabetically, so
a prefix is only the words beginning with the first few letters. Even
the unbiased stride is not enough here: over 13,224 positions it reaches
only p = 0.02881, orders of magnitude weaker than the full-set
result and short of the gate’s bar. fig. 28 plots both
failure modes against the full set and sec. 4.2 generalizes
them.
Shrinking the evaluation is therefore not an option, and a full-set
pymdp pass is tens of thousands of
infer_states calls.
scripts/record_stage2_claims.py computes the full-set
statistics with the implementation-independent NumPy reference decoder
(the oracle) instead. Reading those figures as properties of the
pymdp agent is licensed by the 0-disagreement result of
eq. 16,
which sec. 4.11 states,
measures, and enforces at record time.
Learning an unobserved emission does not improve decoding
Decision 29 tested a different question from the supervised gate
above: whether pymdp’s Dirichlet observation-likelihood
learning could recover a useful letter-to-phone emission when the phone
states were deliberately unobserved. The target is the
same co-indexed relation the gate uses, so the experiment inherits the
alignment stipulation and cannot escape it by learning. The lane trained
on 1621 pairs and evaluated 42,820 positions, using an evenly spaced
stride of 16 for the recorded experiment. The fixed comparator is the
recorded add-1 count emission from the same lane, not a full-corpus
count.
| Decoder or control | Held-out position accuracy (%) |
|---|---|
| Latent-state emission learning | 12.487156 |
| Same-lane fixed count emission | 70.733302 |
| Observed-state P4 gold-lane control | 70.733302 |
The learned emission moved by 0.198777 in its largest entry, but its
decoding accuracy did not merely fail to improve on the fixed control:
it collapsed, from 70.733302 to 12.487156. The observed-state control
recovered the same-lane count emission to a maximum absolute difference
of 0, and the independent oracle and pymdp decoders
disagreed on 0 positions. The result is therefore NO IMPROVEMENT
/ QUALIFIED: this experiment demonstrates that the learning
path is active and that its observed-state control is correct, not that
unobserved-phone learning recovers the co-indexed emission — and
certainly not grapheme-to-phoneme conversion, which no lane at this
level attempts. The result is recorded under decision 29 and its
limitations are carried into sec. 6.1.
Either the emission or the transition can carry the placement error
Level 2 has a learned emission and a learned transition, so either slot can carry the placement error stated as a proposition in sec. 4.1. The obvious signature of a mis-wiring is that accuracy drops below the context-free bar: a filtering decode that cannot beat a lookup table is broken, not merely weak. A time-reversed transition and an information-free uniform emission were both caught that way.
The third mis-wiring was not. An emission normalized over phones
instead of letters, then renormalized so that pymdp still
validates it, cleared the context-free bar while being wrong. Beating
the baseline is therefore necessary and not sufficient. The following
guards actually pin the emission down: first, the column-sum invariant
on A before any renormalization; second, numerical
agreement with the closed-form oracle. Both are asserted in
tests/test_stage2_gate.py and
tests/test_phoneme.py; sec. 4.11 describes why
the second one is the instrument the whole project now depends on.
Phoneme and letter-to-phone comparison ladders
Part A is the phoneme sequence model, the Level 1 construction one level down over the 39 canonical ARPAbet phones.
| Comparator | Perplexity |
|---|---|
| Uniform over 39 phones | 39 |
| Context-free unigram phone frequencies | 27.5944 |
| Phoneme bigram agent | 16.7445 |
| Exact all-position order-1 optimum | 15.8313 |
The exact all-position gain available over uniform at this level is
0.9016 nats, below the inherited Level 1 threshold of 2 nats, so that
wording is unreachable here too, and for the same reason. The per-word
prior reset matters and is a modeling decision rather than a
convenience: position zero of a word has no predecessor and is therefore
paid for under the unigram prior D, which is the honest
language-model accounting.
Part B is equal-length position-aligned letter-to-phone decoding — the first level whose emission is not the identity, so the posterior is an inference rather than a read-off. It is not grapheme-to-phoneme conversion, and a non-identity emission is not a message between levels (sec. 4.4, sec. 4.1). Letters are observed and phones inferred through a learned emission.
| Method | Position accuracy | Context used |
|---|---|---|
| Context-free per-letter \(\arg\max_p P(\text{phone } p \mid \text{letter } l)\) | 70.255% | none |
| Full-set NumPy forward filtering after a bounded pymdp check with 0 decision disagreements | 70.801% | left context only |
| Forward–backward smoothing reference | 75.642% | whole word |
| Viterbi maximum a posteriori (MAP) path | 75.306% | whole word |
The margin in tbl. 13 is thin by construction, not by accident. The length-matched training subset is biased toward transparent orthography, where the letter alone is nearly sufficient, so the context-free baseline is already strong and the headroom for context is small; sec. 4.4 prices that subset and states what it costs in generality. Forward filtering captures part of that headroom and nothing more. Both facts — the thin margin and its cause — are load-bearing for sec. 6.1.
Level 3: the letter-bigram bar admits a wrong word prior
The level relocates where the learned content sits — both transitions
are structural constants and the single learned quantity is the prior
over word identity — so the mis-wiring risk moves with it, and the
accuracy bar does not catch a wrong prior; the recorded catalog makes
that case in sec. 10.1.4. The closed form
stays exact at any vocabulary size, the gate stays bracketed at every
rung of the lexicon-scaling ladder, and the dense pymdp
transition stops fitting in memory far below the closed form’s reach.
The mis-wiring figure, the scaling ladder with its two cautions, and the
run-versus-measure boundary are set out in sec. 10.
Level 4: the declared gate fails against both populations at once
The declared gate fails in opposite directions on each population
Level 4’s declared gate fails against both populations at once, in opposite directions. fig. 16 puts the two side by side; sec. 10.1.5 works through why one threshold can be simultaneously vacuous and above-reference.
The gold population cannot carry a gate
After the raw document split, the gold population holds 221 tokens in 76 sequences from 28 contributing documents. On every one of them the case-transition model and the context-free baseline make identical predictions: the paired test finds 0 positions where only the model is right and 0 where only the baseline is. Model, baseline, forward-backward smoothing, Viterbi and a majority-class constant all score 63.8%.
Every gold-morphology token in the vendored EWT split is a pronoun, so the gold observation alphabet has size 1. A constant observation carries no state information through the emission. It does not, however, erase the learned transition: filtering still evolves the prior through that transition, and a one-tag population with alternating case dynamics can make the sequence decoder disagree with a context-free predictor. The identical predictions in the committed split are therefore an empirical null of its fitted transition, start prior, and held-out sequence labels, not a structural theorem or an impossibility result. Reported rather than omitted, it shows that this English gold arm does not support the shipped gate; an independent population could produce a different paired outcome.
Stage 4’s gate is therefore stated over the derived population only, and the gold-population result is reported as the null it is. sec. 10.1.5 takes up what happens to the declared threshold when it meets both populations at once.
Derived case agreement by stratum
Stating the gate over the derived population buys all 8 roles at the
cost of a labeling this project has not validated. That cost has a
shape, and the shape is measurable, because the oracle assigns each
label by paths applied in strict precedence: morphological
feats[Case] where the corpus marks it, then a deterministic
dependency-relation map, then the ADP token’s own lemma. The final route
labels that token and never transfers the role to its head. The paths
are recomputed from the treebank purely to partition the evaluation and
never reach the model, which observes the UPOS tag and nothing else.
Partitioned that way (tbl. 14), the derived margin of 7.81 points is not a property of the level. It is a property of one stratum. A second bound sits beside that one: a 65-parameter lookup over the observed tags scores 55.4208% against this level’s 50.72%, so the margin is bounded both by where it lives and by what a table already achieves without any latent state (sec. 10.1.6).
The agreement itself is computed by a NumPy forward filter, and the
live Agent’s infer_states /
update_empirical_prior recursion is compared with that
filter over the entire held-out split rather than a prefix: across all
229 test sentences (1319 positions) the two agree on the case-role
posterior argmax with 0 disagreements, and the largest absolute
deviation between the two posteriors at any position is 1.25e-07. The
recorder refuses to write if either statistic moves, so the attribution
of the reported agreement to the pymdp Agent is exhaustive over the
scored population while the headline path remains the NumPy filter
(sec. 4.11, fig. 18).
| oracle path | tokens | baseline | model | margin | discordant | p |
|---|---|---|---|---|---|---|
| dependency relation | 704 | 36.65% | 52.84% | 16.19 | 192 | 3.688e-17 |
| morphology (control) | 296 | 64.53% | 65.54% | 1.01 | 35 | 0.7359 |
| adposition token | 319 | 36.68% | 32.29% | -4.39 | 80 | 0.1456 |
The margin’s primary uncertainty analysis uses the source document, not the sentence or token, as the independent outer unit. The held-out derived arm has 229 sequences from 62 contributing documents; whole-document resampling preserves every nested sequence and position together. Its token-weighted point effect is 7.808946 percentage points, with a 0.95-coverage percentile cluster-bootstrap interval of [4.889581, 11.180282]. The largest document contributes 171 scored tokens, the estimated intracluster correlation is 0.028825, and the corresponding variance-inflation factor is 1.4666. A whole-document sign-flip sensitivity reaches the finite Monte Carlo floor 9.999e-05 under joint central symmetry of document-level effects; the bootstrap interval is the primary statement. The familiar tokenwise McNemar result (p = 4.213e-09, in the caption of tbl. 14) is secondary and conditional on treating nested positions as independent.
The reading is not that the model cheated. It never observes the field the label is derived from, and sec. 4.11 reports what a predictor that is allowed that field scores. The correct reading is narrower: on the dependency-relation stratum, “case” is a deterministic renaming of a syntactic relation, and a first-order model over part-of-speech tags is good at recovering syntactic relations. What that stratum demonstrates, in other words, is a result about word order wearing case’s name.
The morphology stratum is where the claim could be tested against real English case marking, and it is registered as a control rather than a result. Its 35 discordant pairs sit far below the minimum this project requires to resolve an equivalence (sec. 15.2). So its outcome is printed in tbl. 14 but not read as a verdict, and it must never be read as absent. The token-level adposition stratum’s negative margin is likewise unresolved, at 80 pairs. What it does establish is that the aggregate is pooling strata whose signs disagree.
One objection deserves answering rather than deflecting: the morphology stratum starts from a much higher baseline, so it has less room to improve, and a small margin there could be a ceiling effect rather than a provenance effect. It is not, or not only. Expressed as the percentage of available headroom each stratum captures, the dependency-relation path takes 25.56% and the morphology path 2.85%. The gap narrows under that normalization and does not close.
There is a stronger statement available, and it is structural rather than statistical. The observation is the UPOS tag, so a margin requires the tag to carry information about the label. Within each stratum it either does or it cannot (tbl. 15):
| oracle path | UPOS alphabet | \(H(\text{case})\) | \(I(\text{case};\text{UPOS})\) |
|---|---|---|---|
| dependency relation | 9 | 1.443603 | 0.092571 |
| morphology | 1 | 0.892573 | 0 |
| adposition token | 1 | 1.441481 | 0 |
This is the same degeneracy sec. 5.6.2 reports for the gold population, where the alphabet is likewise 1 and every predictor scores alike. It was not known to recur inside the derived population, because nothing had partitioned it. So the reading of tbl. 14 sharpens: Level 4’s margin does not merely happen to live on the dependency-relation path, it can only live there. On the other two the emission is uninformative by construction, and whatever those strata show is attributable to the case-to-case transition alone, never to what the model observed.
None of this withdraws a recorded number. The aggregate is correct arithmetic and tbl. 22 keeps its verdict. What changes is what the number licenses: a reader can now see where the effect lives rather than accept on trust that agreement with an unvalidated heuristic is not accuracy.
Scored against real case morphology, which English EWT cannot supply
Everything above shares one ceiling: English EWT cannot say whether
the sequence mechanism works on real case, because its gold morphology
lives on a one-symbol observation alphabet and its derived margin lives
in the stratum a dependency rule labeled. The question that remains —
does the margin survive when the labels are ground truth? — was
answerable only on a language that marks case morphologically on
nominals. Its population, comparator, endpoint, and refusal rules were
prospectively specified within the same development session before the
sequence-model score, after feasibility and development-set inspection
(docs/decisions.md entry 77). That specification was not
independently timestamped in an immutable prior artifact, so it is not a
preregistration. The result is exploratory: the
project’s confirmatory family was frozen before this arm existed,
neither of its p-values joins that family, and nothing here rescues or
retires an English number.
The corpus is the Universal Dependencies conversion of the Prague
Dependency Treebank – Consolidated (UD Czech-PDTC). Scored tokens are
the case-inflecting nominal categories (6 UPOS tags) carrying UD
feats[Case]; every label is morphology (100% of scored
tokens, enforced by a recorder refusal — the coverage English gold never
had), spanning 7 of the 8 roles (Czech has no ablative). ADP is excluded
although Czech annotates Case= on prepositions: there the
feature records government — the case of the complement, not
inflection of the token — which is the analogue of the English
token-level adposition path whose margin reversed in tbl. 14. The
vendored artifact retains UPOS and Case per token plus each
retained sequence’s authenticated # newdoc id index; the
fields the English trap turns on never enter the file. The train-ft
shard (11,267 tokens) fits the same builders the English arm uses — the
modules are shared, not forked — and the dev shard (169,331 tokens in
20,349 retained sequences nested within 1005 contributing documents) is
scored held-out, against the same context-free
argmax P(case | UPOS) comparator fitted on the same
training tokens. Because the labels are ground truth, the endpoint is
accuracy — the word every English number in this section is
named to avoid.
The prospectively specified question resolves in the surviving direction. The sequence model reaches 39.21% against the comparator’s 32.36%. The primary uncertainty analysis preserves the token-weighted effect but treats each authenticated source document as one independent outer cluster: 6.847535 percentage points over 169,331 tokens in 1005 documents. Its 95% percentile cluster-bootstrap interval is [6.430598, 7.260224]. A whole-document sign-flip sensitivity analysis with 10,000 draws and deterministic seed 20,260,811 reaches its declared Monte Carlo resolution floor at 9.999e-05; it is reported as \(p \leq 9.999e-05\) conditional on joint central symmetry of whole-document differences, an assumption stronger than marginally fair token discordances or zero expected document sum. The interval therefore bounds the positive effect away from zero at the document sampling unit; the finite randomization statement is a resolution bound, not a claim that a probability is zero.
The token-level analysis is secondary and conditional on treating positions as independent despite their nesting within sequences and documents. It reports a 6.85-point margin over 169,331 positions, with McNemar \(b=23,692\) against \(c=12,097\) (35,789 discordant pairs, against the 420-pair resolvability minimum). Its exact two-sided p-value underflows a double and is therefore reported through the finite log-tail, \(\log_{10}p=-832.4\). This much smaller conditional tail does not replace the cluster-primary interval or randomization result.
The displayed comparisons locate the margin. Below: the majority
class scores 29.05%, so the comparator is doing real work before the
model improves on it. Above: a context-free predictor fitted on the
test labels themselves — the best any member of the comparator
class can do — reaches 35.97%, and the model sits above that too. The
margin is therefore not a better lookup; no lookup on this observation
reaches it, and what remains is the case-to-case transition. That is the
mechanism this level always claimed, shown against labels no heuristic
generated. The mis-wiring controls transfer: a cyclically deranged
emission or transition falls below the context-free baseline
(tests/test_czech_case.py).
The honest boundary of the finding is the observation’s poverty, and
it is measured rather than lamented. The mutual information is \(I(\text{case};\text{UPOS})\) = 0.0748 nats,
against a label entropy of 1.6145. So 39.21% is nowhere near what a
model observing word forms would reach: Czech case is largely
written on the word, and a UPOS tag discards the suffix. The
claim this arm supports is correspondingly narrow — the transition
structure of case sequences carries real information beyond the tag, on
ground truth — and it carries two costs the development-session
specification declared. First, Level 4 becomes the stack’s only
non-English level, so no inter-level channel can cross into this arm.
Second, the inventory mapping (UD Case=Ins → INS) remains a
research claim even though the labels themselves are morphology.
Level 5: case-only ablation and widened-alphabet development result
This level was measured twice, on two observation alphabets, and both
results are reported here. The canonical clause level
observes the case role plus one distinguished symbol each for
VERB and AUX; its gate was registered before
its artifact existed and it clears that gate (sec. 5.7.3). The
clause model that observes case roles alone is retained as an
ablation, and everything between here and sec. 5.7.3 describes
it: its gate does not pass, its privileged-label gain does not resolve,
and the held-back rescoring of its classification contrast yielded no
discordant pair. Its failure is what motivated widening the alphabet in
the first place, which is why it is kept in full rather than replaced.
Both arms carry limits that are stated with their verdicts rather than
deferred.
The ablation’s declared gate is vacuous, since free energy rises with length under any model
The declared Stage 5 gate —
free energy tracks clause length — is VACUOUS as stated,
and the audit shows it executably: cumulative free energy is monotone in
length under any model, because every step adds non-negative
surprise. A uniform-random model — the trivial baseline that must fail a
bracketed gate — satisfies it exactly. The declared wording also names a
quantity the level does not have: what the model consumes is one
sentence’s case-role sequence, so the only length available to it is
that sentence’s. This is another shipped declared gate to fail its
audit, and a distinct failure mode in the gate taxonomy (sec. 4.2).
On the case-only ablation, neither the mixture nor the privileged label beats the type-free chain
Stated at the resolution this design supports: the fitted mixture does not beat the type-free case-role chain on this document-disjoint EWT split. Supplying the privileged punctuation-defined type label also gives a negative point gain, but a paired whole-document bootstrap does not resolve its direction. No equivalence margin was declared, so these data do not license calling the gain absent or negligible.
The derived gate is the honest one: beat the type-free case bigram — the strongest model that does not use sentence type, decision 2 applied to the new variable — on the identical held-out positions. The gate is ABOVE_REFERENCE: the bar fails the strict criterion definitionally, and the measured fitted type-label reference also fails to clear it. The comparator is privileged but exceedable, not a bound, so this verdict does not say that no better model can pass. The case-only mixture fails as well. This arm is therefore a non-passing above-reference gate whose privileged-label gain remains unresolved, not a metric pass, an impossibility result, or an equivalence result. Read together with sec. 5.7.3, it is also the direct evidence that the bar is reachable and the alphabet was the binding constraint.
Over 1072 held-out positions, the type-free bar scores 4.3741; the mixture scores 4.3858 — worse. With 99 interrogative training sentences, that pattern is consistent with limited-sample estimation variance, but this single fitted split does not distinguish variance from smoothing, misspecification, or distribution shift. The decisive row is the privileged type-label reference: scoring every sentence under the fitted chain selected by its privileged reference label scores 4.3819, a signed perplexity reduction of -0.178%; the negative sign means the fitted privileged reference is worse than the type-free bar. This is a receiver-sensitivity reference, not a hard information bound: under misspecification a mixture can assign more probability than the label-selected component. On the paired log-evidence scale, the reference-minus-type-free point estimate is -0.010698 nats per sentence, with a 99% percentile interval of [-0.034233, 0.008941] over 10,000 whole-document resamples of 53 contributing test documents at fixed seed 20,260,804; that interval spans zero. The companion ratio of resampled gain to resampled positions is -0.001776 nats per position, interval [-0.006209, 0.001417], which spans zero. The latter point estimate is exactly the log-ratio corresponding to the position-weighted perplexity comparison above. Both arms use the same sampled document indices; all sentences and positions within a selected document move together. The gain is therefore unresolved on both reported scales at this order and in this sample. MAP classification reaches 88.2% accuracy on the held-out sentences, below the 88.76% majority baseline, and a length-only classifier merely reproduces that baseline (88.76%). Recall on the minority class says it more sharply: of the held-out interrogatives, MAP classification recovers 0%. The document-primary paired accuracy difference is -0.5618 percentage points, with a 99% whole-document-bootstrap interval of [-2.7779, 0] over 53 documents, computed from 10,000 whole-document resamples at fixed seed 20,260,804; the largest of those clusters carries 21 sentences. The interval is read at the same declared confidence level as the paired-gain intervals above — one declared level that both intervals state by construction — and its upper endpoint is zero, so it supplies no positive classification claim: p = 1 against the recorded display floor 9.999e-05. The historical sentencewise McNemar contrast remains a conditional secondary analysis. The mixture posterior’s point area under the curve (AUC) of the receiver operating characteristic (ROC) is 0.6483, with a 99% interval of [0.5026, 0.7724] bootstrapped over test documents (53 contributing clusters, with all sentences moving together). It excludes chance on that rank scale, but it does not select a decision threshold or establish calibrated probabilities.
A rank statistic of 0.6483 sitting beside 0% minority recall looks contradictory only if AUC is read as a claim about decisions or about probabilities, and it is neither. Average precision and Brier score, measured on the same posteriors, say what AUC leaves out; each is reported against the reference that makes them interpretable. Average precision is 0.1552 against a positive-class prevalence of 11.24% — its chance level is that prevalence rather than one half. Brier score (Brier 1950), a strictly proper rule (Gneiting and Raftery 2007), is 0.1018 against 0.0998 for the constant predictor that always emits the 11.7% training prevalence: a skill of -0.0201. The negative skill means the fitted posterior is worse than that constant under this proper score. That is the recorded point skill; no action-utility threshold or equivalence margin was specified. The reference prevalence is taken from the training split so that the baseline never sees a test label.
Strict propriety is worth stating precisely, because it licenses less than it appears to. It means a forecaster minimizes expected score by reporting its true beliefs; it does not mean a score improvement is attributable to calibration. The Brier score decomposes into reliability, resolution and uncertainty, so a lower value can come from sharper discrimination as readily as from better-calibrated probabilities, and this measurement does not separate the two.
Together these give one consistent but qualified description: the model’s AUC and average-precision point estimates exceed their rank references, while its Brier score and default maximum-a-posteriori accuracy are worse than their references and the mixture does not clear its type-free gate. The paired privileged-label gain is unresolved. That last qualification is not decorative. An AUC of 0.6483 is ranking information, and information a threshold could in principle exploit — a cost-asymmetric rule trading precision for minority recall is not ruled out by anything measured here. What is reported is a non-passing result for the decision rule this project actually applies, not for every rule that could be applied. The perplexity ladder and paired log-evidence interval answer related but distinct questions and agree only on the weaker conclusion: no gain is resolved on this split.
What makes this a finding rather than a shrug is the detectability control. On a synthetic corpus whose two types genuinely differ, the identical harness classifies at 99.5% against a 50% majority and drops mixture perplexity from 4.0661 to 3.4556. That is a design argument and not an observed-power one: the control plants a known effect and shows the instrument recovers it, whereas computing power from the very statistic that failed to reject is a transformation of the p-value and says nothing new (Hoenig and Heisey 2001). Read that way, the control rules out a generically dead instrument; it does not turn the unresolved EWT result into a property of English. The control’s own operating point differs from the measurement’s — it is balanced and larger — so it bounds the instrument’s capability, not the sensitivity available at 99 minority training sentences and 20 test ones. At the operating point that produced the failure, uncertainty is reported on the axes that were actually intervalled: the AUC interval above, the paired oracle-gain intervals reported here, and the exact conditional bound on the default MAP classification contrast in tbl. 37. The latter produced too few discordant pairs to support equivalence, and the oracle-gain intervals were not evaluated against any smallest effect of interest. The machinery ships — spec-built and bit-identical, with the closed form agreeing with a manual walk over the Agent’s stored arrays to 1.0658141036401503e-14 — but the shipped mixture does not clear the type-free bar and the default MAP rule does not improve on its majority reference. What the synthetic control establishes is that the same machinery recovers a much larger designed signal; it does not establish that the real effect is exactly zero. This arm therefore reports a failed gate, paired uncertainty on the privileged-label gain, and a bound on its classification contrast—not absence, negligible value, or an equivalence result (sec. 4.10 returns to what this outcome does to the inter-level criterion). fig. 17 plots this arm’s non-passing point result and interval beside the detectability control.
infer_states + update_empirical_prior agree
with it at every one of the 1319 held-out positions (0 argmax
disagreements, largest posterior deviation 1.25e-07), so the attribution
is exhaustive over the scored population while the headline path stays
NumPy. Middle: the closed-form mixture path of the retained case-only
Stage 5 ablation, drawn at its type-free bar of 4.3741; the live pymdp
agent agrees with the NumPy joint filter on the type-posterior argmax at
0 disagreements over all 178 held-out sentences and on the full joint
posterior within 1.67e-07 — posterior agreement on the whole held-out
set, not score equivalence for the headline mixture estimand. Right: the
registered observed-position score is a conditional table, not
inference; the separately recorded live-filter score (0.3687 nats,
0.0043 nats better than the unigram bar over 187 sentences) is the only
L6 quantity drawn through pymdp’s inference path. Any of the following
would falsify this panel: a recorded L4 or L5 disagreement count other
than the stated zero, an L4 comparison that stops short of the scored
population, a live-filter score inconsistent with its recorded
improvement, the two L6 estimand deltas collapsing onto one another, or
the Stage 4 agreement leaving the majority share its annotation
requires.Canonical widened model: development-only gain over the type-free chain
This is the canonical clause level. On 205 held-out sentences from 64 source documents, spanning 1679 positions, the widened mixture beats the type-free bar refitted on the identical widened stream (tbl. 16). That is the registered gate and it is a measured outcome that could have failed.
Two limits belong with that verdict, and they are stated here once
rather than distributed through the section. First, this is a
development-session specification: the entry that
registered the alphabet, the population, the comparators, the controls,
the predictions and the falsifiers was committed before the artifact was
regenerated, but its registration and its outcome sit in one session, so
every label the arm produces is recorded descriptive and none may be
read as confirmatory. Second, it has no held-back
replication, and it can never acquire one. The held-back
ud_ewt_test partition was spent by the confirmatory run of
sec. 10.6; a sentinel
refuses a second pass from either side, and a second pass over a
held-back set un-holds it (a re-analysis of the spent population, as in
sec. 5.8.2,
is descriptive only). A reader who wants the strongest available
evidence about the clause level should weigh a registered gate that
could have failed against the absence of an independent replication, and
neither fact cancels the other.
| quantity | value |
|---|---|
| type-free bar refitted on the widened stream | 4.7708 |
| mixture (the widened clause model) | 4.7449 |
| privileged type reference (true type given) | 4.6564 |
| privileged-label gain over the bar | 2.396% |
| paired gain, nats per sentence | 0.198647 |
| its 99% document interval | [0.024598, 0.358617] |
| paired gain, nats per position | 0.024254 |
| its interval | [0.003053, 0.046058] |
| entropy of the type variable | 0.361478 nats |
| share of that entropy realized | 54.95% |
| MAP classification vs majority | 93.66% vs 88.29% |
| interrogative recall | 58.33% |
| rank signal (AUC) | 0.8908 |
| its 99% document interval | [0.7341, 0.9767] |
| comparator: sentence length only | 0.5828 |
| comparator: first symbol is an auxiliary | 0.7543 |
| comparator: case-only arm, same sentences | 0.6201 |
| widened arm on those same sentences | 0.8908 |
The paired privileged-label gain is 0.198647 nats per sentence and its 99% whole-document interval excludes zero on both reported scales. This is the quantity the retained case-only ablation leaves unresolved, and on the widened stream its direction is resolved. It realizes 54.95% of the 0.361478 nats the binary type variable makes available. The widening does not raise that ceiling — the entropy is a property of the prior, not of the receiver — so what moved is the share realized within it.
The rank signal clears every registered comparator. It exceeds the length-only rule at 0.5828, whose classifier never beats the base rate at all, scoring 88.29% against the 88.29% majority. It exceeds the single first-symbol-is-an-auxiliary indicator at 0.7543, so the effect is not one free parameter wearing a sequence model’s clothes. And on the 205 sentences where both arms are defined, the widened arm scores 0.8908 against the case-only arm’s 0.6201: the two added symbols, not the refit, carry the difference.
Classification reaches 93.66% against the 88.29% majority, recovering 58.33% of held-out interrogatives where the case-only ablation recovers none. Its discordant counts are 14 and 3 at p = 0.012725830078125, uncorrected and outside the frozen family. The limit belongs beside that number: documents are the outer sampling unit, and the document-clustered margin of 5.3659 points has interval [0, 10.7695] across 55 clusters, whose lower bound touches zero. The classification contrast is therefore not resolved away from zero at document level, even though the paired gain and the rank interval both are. On the threshold-free scores the posteriors carry real information: average precision 0.7204 against the 11.71% prevalence, and Brier 0.0534 against the training-prevalence reference 0.1034, a skill score of 0.483.
The controls that stand behind those numbers each have the authority to stop the recording. The closed-form mixture and oracle filtering agree to 7.105427357601002e-15, and that agreement is not vacuous: a transition carrying mass across the type blocks drives the same comparison apart by 4.348005. Exchanging the two types’ fitted chains costs the classifier its margin, dropping it to 57.56%, so the type assignment is load-bearing. Finally, the identical harness on a synthetic corpus whose types genuinely differ classifies at 99.5% against its measured 50% majority, with mixture 4.6513 beating type-free 5.5835. That control establishes a live instrument for a large planted effect. It supplies no minimum detectable effect, though, and it is not evidence about small ones.
The population is stated with the result. The arm fits on 972 training sentences and scores 205 held-out ones, drawn from 318 source documents (254 training and 64 held out) and carrying 114 and 24 interrogatives respectively. 130 exclamative sentences and 571 unpunctuated fragments carry no label, and 123 fall under the usability minimum.
Level 6: development and held-back document-position results
Development estimate with a document-clustered interval spanning zero
The registered point estimate is positive. Its primary analysis spans zero on the development population and excludes zero on the held-back one.
The train split shows interrogatives concentrating in document openings: in this corpus, English web text opens with questions more often than it continues with them. The association is stated over EWT and no further. The preregistered direction was lower held-out mean log loss under the tercile-conditional table. Its point estimate is positive. Over 187 sentences in 27 held-out documents, the tercile-conditional model scores 0.3678 nats per sentence against the type-unigram bar’s 0.3729 — an improvement of 0.0051 nats, positive on 116 sentences against 71 (sign test p = 0.001232362495942883). This registered observed-position score indexes the fitted table by the known sentence position; it is not live pymdp filtering over the latent tercile. The audit classifies the gate BRACKETED_REFERENCE: the bar fails it definitionally, and the fitted-on-test reference clears it.
The document is the sampling unit. In the primary document-clustered analysis on the development population, the log-loss interval [-0.009563, 0.024959] spans zero and the p-value is 0.5469 under the assumption-conditional whole-document sign-flip sensitivity analysis (finite-sample exact only if the joint document-difference distribution is centrally symmetric). That result on that population is imprecise, and it is what the level’s status rested on until the estimand was carried to a population the models had never seen. The sentence sign count is secondary and non-diagnostic: reversing the phase columns makes mean log loss worse yet still yields a nominally favorable sentence sign test. A statistic that a worse control passes cannot confirm the registered mean-log-loss prediction, which is why the held-back sign test of decision 111 was not treated as settling the question below.
Held-back document-clustered gain at uncorrected coverage
Decision 115 registered the primary estimand on the held-back UD EWT test split before computing it, fixing the population, the bootstrap, the coverage, the seed and the prediction in a commit that precedes the outcome. The models are the frozen development fits, asserted equal array for array; nothing is refitted. Its status is descriptive, not confirmatory: the population had already been spent by the run of decision 111, so this estimand was registered by someone who knew that population’s other results (sec. 4.12.1).
Over 1090 sentences in 150 held-back documents the mean improvement is 0.008288 nats, and the document-clustered interval [0.002562, 0.014556] excludes zero at 95 percent coverage, the coverage the development analysis above uses. The improvement favors the tercile model in 98 documents against 52, and the sign-flip p-value is 0.0045. Together with the held-back sign test of decision 111, which crosses the frozen family threshold in the registered direction, this is what the gate audit reads to compute Level 6’s finding status; the status is a function of those recorded flags rather than a sentence anyone typed.
Three qualifications travel with that interval and none of them is optional.
First, the development-population interval still spans zero. The two populations disagree, and the honest description is that the estimand resolved on the larger held-back sample and did not on the smaller development one, not that the earlier result was wrong.
Second, the same held-back bootstrap read at the family-corrected coverage of 99.9375 percent gives [-0.001398, 0.019386], which spans zero. This arm is a registered singleton and not a member of the frozen significance family, so the corrected level is a declared sensitivity rather than its decision threshold. A reader who prefers the conservative reading should take the effect as unresolved at that level, and the recorded bounds are there to make that reading available rather than to be argued away.
Third, the population’s resolution is coarser than the effect the development population produced. The smallest constant per-sentence shift this arm can resolve is 0.005726 nats, measured by planting shifts on the centered differences and verified from both sides. The development population’s own clustered effect, 0.0051 nats, sits below that, and planting it here does not resolve ([-0.000626, 0.011369]). The held-back effect is detected because it is larger than the development one, not because this population is more sensitive. A null here would therefore have been uninterpretable, and the detection should not be read as evidence that the effect size generalizes.
The controls behave. Centering the differences to exactly zero mean gives [-0.005726, 0.006269], which does not detect, so no plant above it is detecting the centering. Reversing the sign of 80 whole documents under a recorded seed gives [-0.011465, 0.000634], which also does not detect, so the procedure does not find an effect in differences whose aggregate direction has been destroyed.
A separate descriptive run does use the live Agent’s filtering
recursion. It reports 0.3687 nats, an improvement of 0.0043 nats, with
sentence signs 105 to 82 (p = 0.10741108743413678). This is
evidence that the built Agent can run and produce a related positive
descriptive score; it is not the registered observed-position estimand
and does not replace the registered document-clustered primary analysis.
As a post-registered execution diagnostic, its p-value is outside the
frozen significance family, is uncorrected, and carries no
threshold-crossing inference. The attribution gap between the two
estimands is measured rather than merely named: on the same bounded
slice of 178 held-out sentences, the live Agent’s recursion scores
0.3798 nats against the registered observed-position score’s 0.3796 — a
divergence of 0.0002 nats — and the two estimands agree on the
per-sentence sign of the improvement on a 0.7978 share of sentences.
They index different conditionals by construction (a
B-carried latent-phase belief versus the known position),
so this is characterization, not equivalence.
Under the repository-wide multiplicity family of 16 declared tests
(sec. 15.2), the secondary
sentence-sign p-value is nominally positive at \(\alpha =\) 0.01 and does not cross the
fixed Bonferroni per-test threshold of 0.000625; the recorded flag
stat_stage6_familywise_confirmed is false. Against its Holm
step-down threshold of 0.00111111 at the same familywise level the
recorded verdict stat_holm_stage6_rejected is false: the
test crosses neither the fixed Bonferroni threshold nor its Holm
step-down threshold, and a step-down verdict depends on where every
other member of the family fell (sec. 15.2). The threshold
question remains secondary because neither multiplicity correction
repairs the wrong sampling unit or the mismatch between sentence signs
and mean log loss. It is not confirmation.
The top-down prior intervention moves the case-only model’s type prior
sec. 4.9 implements an
L3→L1g C-preference seam. Stage 6 uses a different
mechanism in a separate experiment. The position prediction \(P(\text{type} \mid \text{tercile})\) blends
into that level’s D type prior — \(D'(\alpha) = (1-\alpha) \cdot P_{\text{L5}} +
\alpha
\cdot P(\text{type} \mid \text{tercile})\), re-formed into the
joint prior — and the guards below make the demonstration falsifiable
rather than decorative. The \(\alpha =
0\) anchor reproduces the sentence-type prior
byte-for-byte (the recorder refuses to run otherwise).
At \(\alpha = 1\) the opening-tercile
message moves P(interrogative) from the static 0.1179 by +0.0521, the
middle tercile by -0.0189. And the tercile-permuted scramble — the
entropy-preserving control — lands elsewhere (-0.01 at the opening), so
the effect depends on which tercile says what. This intervention is not
passed to L3 or L1g in the same run.
The retained case-only clause ablation supplies a privileged-label sensitivity reference, and it is the arm this intervention was measured against. The intervention demonstrably moves the sentence-type level’s type prior, while selecting the fitted case-only chain by its reference type changes case-role perplexity by -0.178% (a signed reduction; here negative). That small, unresolved value motivates expecting little delivered effect, but it is not a hard bound under model misspecification. Novelty and receiver sensitivity remain useful explanatory dimensions. The working hypothesis of sec. 4.10 therefore predicts a channel pays only when it is novel to the receiver and consequential for the receiver’s likelihood, and the document-position→sentence-type intervention is evidence about that distinction, not a proof of it. fig. 19 shows the intervention’s measured effect.
phase-conditional — against the
type-unigram bar over 187 sentences; the improvement of 0.0051 nats
(secondary sentence sign p = 0.001232362495942883) has a
document-clustered interval of [-0.009563, 0.024959], so it is
non-confirmatory. Right: the independent prior intervention — the
sentence-type level’s P(interrogative) after the \(\alpha = 1\) message, per tercile, against
the dashed static prior that the \(\alpha =
0\) anchor reproduces exactly, with the scrambled-message control
(×) landing away from the real opening-tercile message. Bars hugging the
dashed line, or the × coinciding with the opening bar, would each
falsify the intervention demonstration, and the data function refuses to
draw in either case.Generation: the optimum is interior, and the distance metric could not be the gate
Interior optimum in the registered generation sweep
This table sweeps the generator’s policy precision and shows that both extremes generate badly, for opposite reasons, while an interior setting does not.
| Configuration | Membership | Distinct words | Distance |
|---|---|---|---|
| Baseline — ancestral sampling from \(\mathbf{B}\) | 13.33% | 325 | 0.9092 |
| \(\gamma\) = 0.1 — goal too weak | 54.75% | — | 0.6276 |
| \(\gamma\) = 0.55 — shipped | 100% | 180.7 | 0.3449 |
| \(\gamma\) = 16 — collapsed | 100% | 1 | 0.9071 |
tbl. 17 reports the sweep, and the shape is the result. As \(\gamma \to 0\) the policy posterior becomes the habit and the model is the baseline. At high precision, the policy follows the locally most preferred trie branch at each prefix, with the habit breaking ties. This greedy conditional path is not generally the globally most probable word; on the shipped Brown artifact its distinct-word count nevertheless collapses to 1. Neither endpoint is language.
Expected-free-energy contribution to letter generation
The generator selects actions by minimizing eq. 2, which is the one place in this project where the distinctively active-inference machinery runs at all: in the comprehension path every level has a single action and a flat \(\mathbf{C}\), so no policy is scored (sec. 3). It is therefore worth stating exactly what that machinery buys, and the answer is narrower than the framing suggests.
Proposition 1 (The information-gain term vanishes). Let the transition be deterministic, so that taking action \(k\) from any state yields \(q(s_\tau \mid \pi = k) = \delta_k\). Then for every policy the information-gain term of expected free energy is exactly zero, and the expected free energy reduces to its pragmatic part, \(G(\pi = k) = -\sum_o \mathbf{A}[o, k]\, \mathbf{C}[o]\). If in addition the emission is the identity, so that action \(k\) yields observation \(k\) with certainty, this becomes \(G(\pi = k) = -\mathbf{C}[k]\).
The argument is one line. The posterior after an outcome is \(q(s_\tau \mid o_\tau, \pi) \propto p(o_\tau \mid s_\tau)\, q(s_\tau \mid \pi)\), and a point-mass predictive is not sharpened by any likelihood, so the posterior is \(\delta_k\) as well and the divergence between them is zero. Nothing in that half of the argument mentions \(\mathbf{A}\): the vanishing follows from the transition alone.
The second equality does depend on \(\mathbf{A}\), and the distinction is easy to lose because the first does not. The predictive over outcomes under policy \(k\) is \(q(o_\tau \mid \pi = k) = \sum_s \mathbf{A}[o_\tau, s]\, \delta_k(s) = \mathbf{A}[\cdot, k]\), so the pragmatic term is \(-\sum_o \mathbf{A}[o,k]\, \mathbf{C}[o]\) in general, and collapses to \(-\mathbf{C}[k]\) only when \(\mathbf{A}\) maps state \(k\) to observation \(k\) with certainty. AILM’s letter generator does have an identity emission (sec. 4.1), so the reduction below holds for the shipped model, and the condition is stated here because a proposition that omits it would be false of a model with any other emission. Substituting into the policy posterior eq. 13 gives
\[q(\pi = k) \;=\; \sigma\!\left(\gamma\, \mathbf{C}[k] + \log \mathbf{E}[k]\right),\] eq. 17
which is what efe_policy_posterior computes and what
tests/test_free_energy_decomposition.py checks against the
full decomposition at representative current letters spanning the
alphabet.
A proposition asserting that a quantity is zero reads as true whether
or not anyone computed it, so the term is measured against
stochastic-transition and flat-likelihood controls; these are the whole
of the evidence. On the shipped construction the largest information
gain over all 30 actions is 0 nats. Making the transition uniform while
keeping the identity likelihood raises it to 3.401197 nats, which is
exactly \(\log 30\) — the analytic
ceiling, since a uniform predictive resolved by a perfect observation
yields precisely the prior entropy. Flattening the likelihood as well
returns it to 0. The second control is the one that identifies the
cause: a zero alone is consistent with either condition, and only
exhibiting a spread predictive with an uninformative observation shows
that the shipped generator’s maximally informative identity \(\mathbf{A}\) is not what produces the
result. scripts/record_generation_claims.py refuses to
record if the first control fails to exceed the shipped value, because a
control that cannot fire turns the recorded zero into decoration.
This cuts two ways and both are worth having. It is a limitation: at this level the expected free energy contributes no exploratory drive, and eq. 17 is a preference-weighted softmax that a reader owing nothing to active inference could have written down. It is also what makes the rest of this section interpretable, because the generator’s behavior is fully explained by \(\mathbf{C}\) and \(\mathbf{E}\) — which is why the flat-preference and scrambled-preference controls below isolate what they claim to isolate, and why the \(\gamma\) sweep is a clean one-parameter frontier rather than a trade among three unobserved forces.
There is a third degeneracy, and it closes the escape the first two
leave open. Both conditions above drive the information gain itself to
zero, which invites an obvious repair: give the generator a hidden state
that genuinely carries uncertainty. This architecture already holds one
— the unresolved word, whose trie-node posterior at an ambiguous prefix
is spread over many candidates. So the construction was built and
measured: hidden factor the word identity over the 2000-type lexicon,
action the emitted letter, \(\mathbf{A}\) the prefix-conditioned
next-symbol map, belief the trie-node posterior, and \(\mathbf{B}\) the identity for
every action, because a word does not become a different word
part-way through being spelled — the invariant that pins the word level
(sec. 4.5). Emitting a letter
changes what is observed, never which word is being spelled. On this
construction the information gain is measured and it is not
zero: 2.716363 nats at the empty prefix, and positive at the
most-populated ambiguous trie node of every probed depth — t,
th, the, with, selected by mass, not by hand.
What is zero is the term’s per-action spread: across all 30
actions the information gain, the pragmatic value, and \(G\) each vary by exactly 0 at every probed
prefix. Transitions that do not depend on the action make the predictive
state — and therefore the predictive observation — identical across
actions, so both terms of eq. 2 are constants over the policy
space, and the softmax in eq. 13 cancels
constants. The induced policy posterior equals \(\sigma(\ln \mathbf{E})\), the pure habit,
to a measured maximum deviation of 1.11e-16. The recorder
(scripts/record_generation_word_state_claims.py,
prospectively specified with its refusal conditions in the development
session as decision 78) refuses to write if any spread is nonzero, and
its action-dependent control — the same node, the same belief,
transitions that differ by action — spreads \(G\) by 0.786256 nats, so the zeros were
recorded by machinery that can report a nonzero.
tests/test_generation_word_state.py rejects the general
class: for any emission, belief, preference, and precision, an
action-independent transition stack leaves the policy posterior on the
habit.
The three degeneracies are therefore of two kinds. A deterministic transition or an uninformative likelihood makes the epistemic term zero; an action-independent transition leaves it positive and makes it irrelevant — nonzero information gain that differentiates nothing. The consequence is worth stating plainly, because it is a fact about generation rather than about this implementation: a hidden state with real uncertainty is not enough. The epistemic term bears on action only where different actions induce different predictive distributions over that state, and over a fixed word state no emitted letter can do so — the environment would have to hold the true word and answer differently depending on what is asked of it. That is interrogation, not generation, and the regime it describes already exists in this project under that description.
The obvious next question, then, is what happens where the information-gain term is not zero and action-bearing, and this project has already answered it rather than deferred it. Budgeted attention at the letter-to-phone level (sec. 6.1) inverts this section’s regime exactly: there the preference term is absent and the information-gain term is the sole selection criterion, with each candidate position scored by the posterior entropy it is expected to leave. That arm was measured against the exhaustively optimal fixed schedule and it loses, by 1.0832 points at a 50% budget.
The generation and budgeted-attention arms together are the decomposition, each term measured alone. Where the information-gain term vanishes and preference carries the policy, generation works: every sampled word is in the lexicon and the induced distribution sits 0.3449 in total variation from the target. Where the information-gain term is the whole policy and preference is absent, it is beaten by a schedule that performs no inference at decode time. Neither result is an argument that expected free energy is the wrong objective. Together they are the narrower and more useful statement that in this architecture the two terms are separable, and that on the evidence here the pragmatic term is the one carrying the work.
Exact distributional distances
The policy generator’s whole state is the prefix it has emitted so
far: lexicon_preference reads the prefix and nothing else,
and the current letter is reset to a space at every word boundary. Its
distribution over the lexicon is therefore the product of the action
posteriors along each word’s own path through the trie. The ancestral
comparator admits the same computation with each action posterior
replaced by the corresponding Brown-transition column. In both cases the
finite lexicon’s complement is one explicit out-of-lexicon remainder. An
attempt that terminates immediately produces no token and is conditioned
out on both paths, exactly matching GenerationResult.words.
Thus the model, baseline, and their difference share one exact estimator
rather than comparing an exact model value with a pooled baseline
sample.
That distinction changed a recorded result, which is why it is stated here rather than in a methods note. The sampled sweep put the optimum at \(\gamma\) = 1, scoring 0.4828; exactly, the optimum is \(\gamma\) = 0.55 at 0.3449. The sampled and exact values differ by up to 0.1465 on the shared grid, and the direction of that gap is not random. A run of 400 words over 3 seeds is 1200 tokens against a 2000-type target, so the empirical distribution is supported on at most 1200 types and its distance to the truth is inflated by construction — before any question of which \(\gamma\) is best. Pooling the seeds into one statistic with no spread reported left nothing to signal it.
The finding survives. The optimum is interior, both endpoints fail for opposite reasons, and the exact curve is the same shape. What did not survive is the operating point, and the ancestral comparator’s old pooled distance is now retained only as an explicitly sampled diagnostic: its pooled estimate is 0.9224, whereas the compatible exact comparator is 0.9092. A sampled estimate of a distribution’s distance to a many-type target was never going to resolve the small gaps that separate adjacent grid points near the minimum.
This gives the generation gate a property none of the recognition gates has: it fails in two opposite directions, so it cannot be passed by turning a dial to an extreme. Every gate in sec. 4.2 can be characterized by the single question of whether a threshold sits between a baseline and a ceiling. This one additionally requires that a free parameter be neither too small nor too large, and the U-shape is what demonstrates the requirement rather than asserting it. fig. 21 shows the sampled strings at each setting.
What the distance metric does not catch, and how a degenerate generator beats it
The degenerate generator scores 0.9071, which beats the baseline’s 0.9092 while holding its distinct-word count at 1 indefinitely. Distance alone would admit it. The second gate conjunct requires more than 20% of the ancestral run’s sampled diversity, or more than 65 distinct words under the declared run protocol; only that diversity floor rejects the collapsed endpoint.
That is recorded here for the same reason tbl. 24 records the three word-level mis-wirings that clear their bar: a guard’s blind spots are part of its specification, and a project that reports only what its checks catch is reporting half of what it knows.
Helpful and harmful cross-level interventions
The lexical channel helps at every tested weight
This table sweeps the lexical message’s mixing weight and shows it beating the uncoupled decoder at every weight tested, unlike the harmful letter-coupling sweep it is contrasted against.
| Mixing weight | Accuracy | vs anchor | Scrambled control |
|---|---|---|---|
| 0.0 — the anchor | 70.801% | — | identical by construction |
| 0.1 | 72.704% | 1.903 | 69.25% |
| 0.2 | 73.319% | 2.518 | 67.13% |
| 0.3 | 73.648% | 2.847 | 66.245% |
| 0.5 | 73.951% | 3.15 | 65.035% |
| 0.7 — best | 74.134% | +3.333 | 62.55% |
| 0.9 | 74.059% | 3.258 | 58.309% |
The first predicted signature appeared in tbl. 18. The channel helps by 3.333 points — for scale, the entire letter-to-phone margin over its own context-free baseline is 0.546 points, so the channel is worth several times the level’s own headline result. The second did not survive the correction of decision 110: the sample argmax is interior, at weight 0.7, but the highest tested weight trails it by only 0.075 points on 302/270 discordant positions (p = 0.1949), the effect helps at every tested weight, and the wider grid of tbl. 30 places the same message’s best cell at full weight. The sweep therefore records an ordering, not an optimum: it does not distinguish an interior peak from a plateau, and the reversal the defective lookup had shown at weight 0.9 was an artifact of matching the wrong context.
Sweep-shape diagnostics and their scope
The part worth keeping is a diagnostic about the shape of a weight sweep, for which these two sweeps are the evidence base:
In the two measured sweeps, the message the receiver lacked helped at every tested weight, with a sample argmax strictly between zero and one that the sweep cannot distinguish from its highest weight, and the message it already observed had an optimal weight of zero. The working hypothesis this supports: a monotone decline over the whole grid means no weight rescues the message — a diagnostic every future channel either confirms or breaks.
That converts an expensive question into a cheap one in one direction only. Whether to build an inter-level channel is otherwise answerable only by building it; a monotone decline says no tuning will rescue this message into this receiver at this insertion point, which is a verdict on the channel as built.
The converse does not hold, and the oracle intervention is why. An interior optimum would say the mixing weight matters, and a weight can matter both when the message carries something the receiver lacks and when it partially corrects a receiver that is misspecified. The typed word-prior curve below improves through its high tested endpoint and therefore locates no optimum. Its helpful direction from a message predicted to be redundant still shows that sign alone does not separate the two accounts.
The hypothesis also predicted where the remaining channels would and would not pay, and one of those predictions has since been run — with an instructive qualification. A document-position level passing a type distribution into the clause joint prior sends something no clause model can represent, and the channel demonstrably moves the clause level’s type prior (sec. 4.8). But the case-only clause arm, which is the receiver this channel was measured against, measured how its fitted predictive changes when a privileged reference type selects the chain — -0.178% (sec. 4.7). That small reference suggests low sensitivity; it does not hard-bound an intervention under misspecification. This is the sensitivity term of the hypothesis doing the work that novelty cannot: the message moves a prior, and the receiver’s predictive is barely a function of the variable being moved. Potential value prices the message, sensitivity prices the delivery. The potential-value term rests on the interventions that vary it — the coupling, the lexical channel, the generation channel, and the punctuation-type-oracle→word-prior arm below; the sensitivity term on the case-only clause arm’s privileged reference and the L6→L5 prior intervention, the only intervention that has tested it. Whether the widened receiver of sec. 5.7.3 is more sensitive to the same message is an open question this paper does not answer: no channel has been measured into it. Five of the 7 registered interventions are separately measured, and they bear on those two terms and nothing beyond them. Of the two case-word seams that make up the rest, the bridge’s influence is now measured as an exploratory development-population sweep under a fresh registration (sec. 5.10.4), and the privileged-oracle diagnostic remains the structural inlet whose evaluation records nothing.
The predicted privileged-oracle harm did not reproduce
The predicted harm did not reproduce.
The cheapest available test of the potential-value term was a privileged punctuation-type-oracle→word intervention: a train-estimated \(P(\text{word}\mid\text{punctuation-defined sentence type})\) mixed into the word level’s prior for held-out typed sentences. The message uses the same type variable the clause model represents, but it is a reference label, not the clause Agent’s posterior or an L5 output. The word level already observes those words. Under the biconditional form the prediction was unambiguous — that channel harms, monotonically. It has since been built and measured (decision 27, corrected after the document-partition repair in decision 88): on the declared axis — the held-out perplexity of the word prior, the quantity the pre-registration named as where harm would show — the clause-typed word message produced a small improvement at every tested positive weight (anchor 3.268023 → best tested 3.263007 at the high grid endpoint alpha = 0.9, delta -0.005016). The sweep therefore does not locate an optimum. The token-direction tally agrees: 51,364 tokens improve against 22,649 made less probable, while the scrambled control is far worse (4.562879). No monotone harm reproduced, so the predicted harm was not confirmed.
The population boundary is source-document disjoint: the typed statistic is estimated on 448 Brown documents and evaluated on 52 others, with 0 overlap and every Brown category represented in both arms. The type-free and swapped-type controls isolate the role of the privileged type label. Replacing both conditional rows by the type-free bridge marginal gives perplexity 3.267863 at the selected weight, while swapping the declarative and interrogative rows gives 3.376872; the real typed message is 3.263007. The vocabulary-axis reversal remains a wiring control, not the evidence that sentence type itself matters.
The outcome is evidence against the biconditional and is what the potential-value hypothesis expects to be possible. A coarse, type-conditioned message is not cleanly redundant against a prior that is a marginal over words: the receiver’s prior carries no type structure at all, so the message can shift mass the marginal had mis-assigned without telling the receiver anything it could not have read off the observed word. Agreement between aggregate log-loss and the majority token direction survives whole-document uncertainty. The mean gain is 0.00153609 nats per emission, with a 95% whole-document interval of [0.00088152, 0.00233064]; 43 documents favor the typed message and 9 favor the anchor. The assumption-conditional document sign-flip sensitivity is reported only as p ≤ 9.999e-05, its Monte Carlo resolution floor. This resolves the descriptive sign on the reused population; it does not make the correction confirmatory or identify whether the gain is conditional information, mismatch correction, or regularization under the chosen mixing rule. What neither metric supports is a large effect. The best point differs only narrowly from the anchor (3.268023 to 3.263007), so the measured improvement sits on a numerically narrow curve. That scale is reported by the injected endpoints; no equivalence or near-null classification is inferred from it.
Case-word influence sweep on the development population
The case-word bridge’s registered influence sweep
(docs/decisions.md entry 121; estimand and controls in
sec. 4.10) is the second
intervention on the L3 word prior that was specified before it ran, and
the first in which the sender is the case level’s own posterior rather
than a privileged reference. The receiver side is scored over 3001
tokens of 64 EWT-dev test documents — 14,449 word-level emissions —
against the zero-weight anchor, whose word prior has held-out perplexity
3.439523 and which the recorder reproduces bit-identically from the
untouched receiver prior before any positive weight is scored.
The mean per-token log-gain is positive across the tested weights and peaks at an interior weight: the recorded best weight is alpha = 0.3, at 0.171460512 nats per scored token against the anchor. The token-direction tally is not a uniform win: 1015 tokens improve against the anchor, 1425 are made less probable, and 561 are exactly unchanged — the last the no-message tokens the inlet never touches. Both controls behave as registered: the scrambled-word negative control sits at -0.229713297 nats per token at the best weight, and the declared positive control leads the scrambled control by 0.492584079 nats, above the pre-registered margin of 0.177528463 nats and recorded as passing at every positive weight.
The whole-document clustered analysis expands each token’s difference to its word-level emissions (14,449 across the 64 source documents), resamples whole documents and sign-flips them: 10,000 resamples at seed 20,260,811. The clustered per-emission effect at the best weight is 0.035611668 nats per emission, with a 95% whole-document interval of [0.026024861, 0.045182061]; 56 documents favor the message and 8 favor the anchor (fig. 23). The interval excludes zero on the development population, which is a descriptive sign resolution, not a confirmatory one, and the two units are not interchangeable: the clustered estimand prices the bridge per word-level emission, the mean per scored token.
The sweep’s scope warnings are the registration’s own and travel with the result. The scored documents are the EWT dev population already scored for Stage 4 case assignment: development evidence under a fresh registration, never confirmatory, never “untouched”, and the shared corpus’s test file remains spent (decision 111). Cross-corpus transfer — an EWT-estimated message applied to the Stage 3 Brown-receiver vocabulary through a lowercased exact-string match — is part of the estimand, named as such. The recorded receiver sensitivities of the other arms bound nothing here. The bridge carries the exploratory prior-only evidence reported above; its privileged-oracle diagnostic remains a registration-only structure. These independently measured arms do not establish an executed cascade. Every derived label here remains agreement, not accuracy wherever quoted; nothing in the sweep promotes a development-population result to confirmatory, which would require a fresh population and a fresh registration.
Evidence and limits of the information-value hypothesis
The honest limit is the evidence sequence itself. The letter-predictive harm motivated the account. The later registered lexical channel helped. The L6→L5 prior intervention moved its receiver but has a non-confirmatory recognition result. And the punctuation-type-oracle→L3 harm prediction failed, with a directionally concordant helpful outcome under a corrected partition — and that correction is not a fresh confirmatory population. Taken together, this is a small, dependent set of experiments in one language, not confirmation of an architectural principle.
The measurement that would test the hypothesis directly is not reported here. Every channel in this paper is measured as an end-to-end intervention at a fixed mixing rule, and this confounds the potential value of a message with the insertion rule that delivers it. Separating the two requires estimating the conditional information the message carries about the receiver’s target given what the receiver already has — \(I(Y; M \mid X)\), or equivalently the held-out log-loss reduction of a flexible predictor given \((X, M)\) against \(X\) alone — under the receiver’s own proper loss and independently of any mixing weight. That quantity is the Bayes-optimal potential-value term. Under a misspecified receiver, though, it does not hard-bound realized improvement. What would turn each channel from one number into a mechanistic decomposition is comparing three things directly: the potential value, the mismatch correction, and the realized effect.
Message source and insertion point under proper loss
The letter-predictive and lexical sweeps above were each measured at exactly one insertion point, which confounds which message was sent with where it entered the receiver. A channel factorial crossing both factors, a combination-rule control, a fitted variant, and a re-scoring of every cell on the receiver’s own proper predictive loss are reported in sec. 11: message source and insertion point both matter, but the apparent site effect is largely an artifact of linear mixing, and every decided sign agrees across the accuracy and loss axes.
Learning outcomes beyond baseline comparisons
Beating the context-free baseline is necessary but not sufficient.
Level 2’s emission and transition are both learned, and one of the
mis-wirings tested against them — an emission normalized over phones
instead of letters and then renormalized so pymdp still
validates it — clears the baseline bar while wrong. Only structural
invariants checked before renormalization and a value-for-value
comparison against an independent re-derivation catch it (tbl. 28);
the catalog and the invariants that pin the emission are set out in
sec. 10.
Count-based learning and its registered prediction
Until this result, every matrix in the project was estimated by
counting outside pymdp and installed as a fixed array: the
agents inferred, but had never learned. The prediction in decision 22
was committed before the first versioned learning recorder and outcome
in decision 23. That chronology establishes repository ordering; Git
does not timestamp any earlier uncommitted execution. The conjugacy
checks retain descriptive ledger status, and this protocol is outside
the current machine-checked registration-provenance inventory.
The prediction is an identity, not a hope of approximate agreement.
Add-\(k\) counting is the
posterior mean of a categorical–Dirichlet model, and under the letter
level’s identity emission the filtered posterior at every step is a
one-hot on the observed letter, so pymdp’s Dirichlet
accumulation over posterior outer products is the accumulation of
observed bigram indicators. The learned transition and the counted
transition are the same arithmetic in different code, and were therefore
required to agree to float32 rounding. They did, to a maximum absolute
deviation of 0 over 1323 positions, with identical perplexity on the
passage the counts were accumulated over (8.163892 against 8.163892;
in-sample, so not comparable to the shipped agent’s held-out score in
tbl. 8) as
the corollary. The agreement is evidence only because the controls show
where it fails: a Dirichlet prior mismatched to the comparator’s
pseudocount breaks it by 0.15343913435935974, re-matching restores it to
0, and a learning rate other than 1 breaks the conjugate identity
outright. lr_pB is therefore not a tuning knob here: any
value except one makes the learned matrix an estimator of nothing the
ledger describes. fig. 24
plots the agreement and its mismatched-prior control.
Nothing above claims learning helps: agreement with counting
is a correctness anchor for the mechanism. The version that is a real
active-inference claim — a level that keeps learning beating a frozen
one on non-stationary text — has since been measured (decision 28). On a
drifted Brown genre stream (government then romance, letter-bigram drift
1.110006, measured not asserted), the online agent that keeps learning
across the drift scores 10.502499 on post-drift held-out text against
the frozen control’s 11.611376, a gap of 1.108877 perplexity. The frozen
control is the arm the prediction requires to lose, and its losing is
informative because the alternative is diagnostic rather than merely
disappointing: a frozen model fitted to the first genre only that did
not lose on post-drift text would mean the drift was not real
or the online updates were not happening, and the comparison would be
measuring neither. The re-fit control (10.306888) bounds the same
comparison from the other side by scoring at least as well as the online
agent, and the pre-drift identity confirms the online path is still
counting at lr = 1 (P3). The prediction was committed
before its measurement (decision 28), but the entry is not in the
registration-provenance registry, so its ledger status is descriptive
rather than confirmatory, it sits outside the significance family, and
no interval is attached: the gap is a point comparison.
Bits-per-symbol information budget
Perplexity throughout is eq. 7 — the exponentiated mean negative log predictive probability under the model’s own one-step-ahead prior — reported in bits per symbol where that is the more legible unit,
\[H_2 \;=\; \log_2 \mathrm{PPL},\] eq. 18
and the fraction of the information available at a given model order that the agent actually captures is
\[\eta \;=\; \frac{\log \mathrm{PPL}_{\text{uniform}} - \log \mathrm{PPL}_{\text{model}}}{\log \mathrm{PPL}_{\text{uniform}} - \log \mathrm{PPL}_{\text{opt}}},\] eq. 19
with \(\mathrm{PPL}_{\text{opt}}\) the empirical order-1 conditional-entropy optimum of eq. 8, computed on the sample the numerator is scored over. eq. 19 is the quantity the gate discussion in sec. 4.2 turns on: it separates “the model is weak” from “the order is exhausted”, and those two situations call for opposite responses.
In information units the letter level reaches 2.4783 nats, which by eq. 18 is 3.5755 bits per character.
| Quantity | Value (nats) |
|---|---|
| Uniform over the letter alphabet | \(\log\) 30 |
| Bigram agent | 2.4783 |
| Order-1 conditional-entropy floor | 2.375 |
| Gain realized over uniform | 0.9229 |
| Maximum gain any order-1 model can realize | 1.0262 |
Against the training distribution’s order-1 budget, the agent’s held-out gain is 89.9% of the information an order-1 letter model can access there; by eq. 19, with the optimum taken on the scored passage itself, it is 57.3%. fig. 25 draws that budget directly in nats, with the declared threshold placed outside the achievable region.
Confirmatory replication on the held-back split
The members of the frozen significance family with a genuine
held-back partition available were the ones computed on EWT populations.
Under the registered protocol of sec. 4.12
they were scored against the whole held-back
en_ewt-ud-test.conllu split exactly once, with every model
parameter read unchanged from the development fits and both controls run
on the same population first. Every registered direction and threshold
prediction held: the Stage 4 derived comparison and the Stage 6 sign
test cross the frozen per-test threshold of 0.000625 in the direction
their development result recorded, the Stage 4 gold comparison and the
case-only Stage 5 ablation’s classification yield no discordant pair and
are therefore not shown rather than shown absent, and the other members
of the family were not rescored and remain development-population
inference. The run cannot be repeated — the sentinel claim marks the
population spent — and the per-member detail, the controls, and the
document-clustered intervals are set out in sec. 10.6.
What the historical component results establish
They establish that six levels have real pymdp Agent builders and
recorded figures traceable to runs. They do not establish that every
headline score used live Agent inference. L1 does; the exact or NumPy
paths of L2A, L2B, L3, and L6 and their live-Agent checks are
inventoried in sec. 4.11. L4 uses a
NumPy forward filter whose live-Agent recursion reproduces it at every
one of the 1319 held-out positions with 0 argmax disagreements and a
largest posterior deviation of 1.25e-07. The retained case-only L5
ablation uses a closed-form mixture whose live-Agent recursion
reproduces the NumPy joint oracle with 0 type-argmax disagreements and a
largest joint-posterior deviation of 1.67e-07 over all 1072 held-out
positions, which is posterior agreement rather than score equivalence
for the headline estimand; the canonical widened L5 mixture is checked
against oracle filtering (sec. 5.7.3). The
clause level clears a gate registered before its artifact existed, on
the widened observation alphabet, with its paired privileged-label
interval resolved away from zero (sec. 5.7.3); that gate
is a development-session specification and has no held-back replication.
The case-only clause model it displaced is retained as an ablation, with
a non-passing gate and a paired privileged-label interval spanning zero,
and its instrument recovers a planted effect in the detectability
control (sec. 4.7). The system
generates text under policy selection with a measured interior optimum
(sec. 4.9); its seven
registered receiver interventions — 5 measured, the case-word bridge
measured as an exploratory prior-only sweep (sec. 5.10.4), and the
privileged-oracle diagnostic the one registered seam that records no
estimand — classify as three help on its declared result axis, one harms
its receiver, three move a prior without a delivered end-to-end effect
estimate, and none are mixed-direction. By source kind, five have a
model-output source and two have a privileged-oracle source. The
selected lexical channel, L3→L1g generation seam, and corrected
punctuation-type-oracle→L3 word-prior result help; letter coupling
harms; and L6→L5 moves a D prior. The oracle→L3 arm’s
predicted harm did not reproduce, but it is not an L5-output seam. The
L3→L1g and L6→L5 model-output seams and the oracle intervention were not
executed as a connected cascade, and the privileged-label gain of the
retained case-only clause ablation remains unresolved (sec. 4.10
states why neither is a hard bound). Both that arm and the L6→L5
intervention are measured against the case-only clause model, not
against the widened one. A further result, held at descriptive status in
the ledger and outside the significance family, comes from within-level
parameter learning rather than from the hierarchy. An agent that keeps
learning across a distribution shift beats a frozen control on the
drifted stream — 10.502499 against 11.611376 post-drift perplexity, a
gap of 1.108877 — a point comparison with no interval; the direction and
the refusal clauses were committed before the run (decision 28, sec. 4.11), and the
ledger does not promote the entry to confirmatory. What the numbers do
not establish is language comprehension in any behavioral
sense, competitive capability on any benchmark, generality beyond the
corpora each level was scored on, or confirmation of any member other
than those that clear the frozen per-test bar on the held-back split
(sec. 10.6); sec. 6.1
draws the first three lines, and sec. 15.2 the fourth.
sec. 13
scores three zero-shot external models against an AILM comparator on
identical positions within each separate letter, phoneme, and G2P arm,
using benchmark-specific fixtures rather than the positions scored here.
That comparison is a reference frame: it is not contamination-controlled
and settles no competitiveness question in either direction.
One further accounting spans the historical component and channel
experiments rather than a single level. Their declared significance
tests form one family of size 16 at familywise \(\alpha =\) 0.01, corrected two ways. 7 of
the 16 cross the fixed Bonferroni per-test threshold of 0.000625; 7
cross their Holm step-down threshold at the same familywise level, which
controls the same error rate under the same dependence assumptions. Of
those, 0 survive only the step-down. The Stage 6 sentence-sign test is
nominally positive and crosses neither the fixed Bonferroni threshold
nor its Holm step-down threshold
(stat_stage6_familywise_confirmed = false, a ledger key
that predates the vocabulary used here and records the fixed-threshold
crossing alone; stat_holm_stage6_rejected = false, its
step-down bar being 0.00111111). It crossed that step-down bar under the
family ordering recorded before the lexical channel’s backoff was
corrected (decision 110) and no longer does, which is the instability of
a step-down bar that sec. 15.2 describes. This
is secondary evidence: a reversed-phase model with worse mean log loss
can still yield a nominally favorable sentence sign, while the primary
document-clustered log-loss interval spans zero on the development
population. That survivor count is not a tally of endorsements. The
biased prefix re-analysis of sec. 4.2 is another
survivor; it crosses the threshold precisely because its subsample is
unrepresentative. Within the family, two members cannot reject at the
corrected threshold for any outcome. And the family itself was declared
after its members were measured, so crossing a corrected threshold here
means surviving a retrospective procedure on the development population
rather than confirming an effect — the distinction sec. 15.2 defines and
this section’s numbers inherit. The historical family’s
development-population verdicts retain that status; sec. 10.6 separately
reports the eligible held-back rescoring. The benchmark family and
locally specified GUM interval have their own stated populations and
inferential scope. The confirmatory run that could have upgraded it was
pre-registered, executed to its first data touch, and retired by
exhaustion for the external_lexicon members (decision 91):
the registered population, upstream CMUdict entries absent from the
vendored pin, was measured empty because upstream is byte-identical to
the pin. The family, each member’s endpoint and test, and each
substantive member’s replication population remain frozen in
CONFIRMATORY_REPLICATION; the four split re-analyses are
explicitly marked as non-rescored diagnostics whose full-set member
carries the replication (src/ailm/statistics.py, decision
79); the ud_ewt_test members were then scored exactly once
against the held-back EWT test split under decision 111 (sec. 10.6): two clear the
frozen per-test bar in their recorded direction, two yield no discordant
pair, and the other 12 members of the family remain
development-population inference. sec. 15.2 states the
family executably, gives all three qualifications in full, and reports
each primary effect with its exact 95% interval on the discordant win
share (tbl. 36).
The external reference probes are scored on their own fixtures rather than on the positions measured here, and sec. 13 carries the protocol and the full probe readings. The one result worth carrying into the main text is that the comparator’s raw letter-census margin is mostly inventory compliance — whether a system will emit a space at all — and the contrast that survives restriction to alphabetic targets, not the raw census margin, is the finding.