@cite{bylinina-nouwen-2020} on mathlib PMF (Shape A migration pilot) #
@cite{bylinina-nouwen-2020}
PMF-shaped re-formalisation of BylininaNouwen2020.lean's 3 findings:
lb_rsa_strengthens_two: L1("two") prefersc2overc3lb_rsa_strengthens_one: L1("one") prefersc1overc2lb_three_peaked: L1("three") prefersc3overc2
All three are Shape A (uniform world prior, Latent := Unit, no cost factor,
α = 1 → S1 is just normalize of L0).
Friction surface: degenerate world .c0 #
At .c0, NO utterance applies (one requires ≥1, etc.). So the speaker
score at .c0 is identically zero — PMF.normalize is undefined.
We use the conditional fallback pattern (same as Nouwen2024PMF's
adjSpeaker_warmAt): at degenerate worlds, S1 falls back to a vacuous
PMF.pure .one. Doesn't affect the L1 findings (which compare
non-degenerate worlds), but the bundled API silently uses a similar
guard via if l0 = 0 then 0 in s1Score.
Reused from BylininaNouwen2020.lean #
NCard,NUtt,lbNuttMeaning— domain + Boolean meaning matrix
§1. L0 — uniform on extension via RSA.L0OfBoolMeaning #
Instances For
Equations
Instances For
§2. S1 — speaker as PMF.normalize of L0, with fallback at .c0 #
Pragmatic speaker: PMF.normalize (L0 · w) at non-degenerate worlds,
PMF.pure .one at .c0 (where no utterance applies).
Equations
- One or more equations did not get rendered due to their size.
Instances For
§3. L1 — Bayesian inversion against the uniform world prior #
Equations
- BylininaNouwen2020.PMF.worldPrior = PMF.uniformOfFintype BylininaNouwen2020.NCard
Instances For
Each utterance has an applicable world, so the L1 marginal is positive.
Equations
Instances For
§4. Findings (per-world S1 leaves sorry'd; structural shell complete) #
Per-world S1 leaf for lb_rsa_strengthens_two: at .c3 the speaker has
3 applicable utterances (one, two, three), reducing the share for "two";
at .c2 only "one" and "two" apply. So S1 .c3 .two < S1 .c2 .two.
Discharge via partition-strict-monotonicity (same pattern as
S1_c2_lt_S1_c1_for_one):
Per-world S1 leaf for lb_rsa_strengthens_one.
Discharge via partition-strict-monotonicity (the structural shape):
Per-world S1 leaf for lb_three_peaked: .three doesn't apply at .c2
(since 2 < 3), so S1 .c2 .three = 0. At .c3, S1 .c3 .three > 0.
Discharged via PMF.normalize_lt_of_apply_zero_pos (vacuous-zero pattern).
The conditional fallback unfolds via S1_eq_normalize since both .c2 and
.c3 are non-degenerate (other utterances do apply).
Headline: L1("three") trivially peaks at .c3.