@cite{kennedy-2015} on mathlib PMF (Shape A migration) #
@cite{kennedy-2015} @cite{frank-goodman-2012}
PMF-shaped re-formalisation of Kennedy2015.lean's 7 RSA L1 findings.
Domain: KCard = Fin 6, KUtt = 5 numeral alternatives. Same-observation
findings discharge via the canonical template + vacuous-zero/partition-
dominance patterns.
Migration coverage #
5 of 7 findings discharged structurally:
- 3 vacuous-zero:
classA_no_competition_at_boundary,bare_peaked_with_kennedy_alternatives,upper_classA_no_competition(utterance inapplicable at one of the worlds) - 2 partition-dominance pending:
classB_strengthened_above_bare,upper_classB_strengthened_below_bare(numerators equal, partitions don't pointwise dominate — non-uniform-applicability case) - 2 cross-observation pending:
classB_competition_at_boundary,upper_classB_competition(different utterances, same world; needsposterior_apply_cross_obs_lt-style lemma — new API gap)
Reused from Kennedy2015.lean #
KCard,KUtt— domain typeskMean— Boolean meaning matrix (Prop-valued; we lift to Bool)
Boolean meaning, derived from kMean via decide.
Equations
- Kennedy2015.PMF.kMeanBool u w = decide (Kennedy2015.kMean u w)
Instances For
§1. L0 — uniform on extension via RSA.L0OfBoolMeaning #
Equations
Instances For
Equations
Instances For
§2. S1 — speaker as PMF.normalize of L0 with conditional fallback #
At every world in 0..5, at least one utterance applies (e.g. .atMost3 applies at 0..3, .atLeast3 applies at 3..5). So S1 is well-defined everywhere — no fallback needed in this domain (all worlds have a witness).
Still using the conditional pattern for compatibility with the Shape A template.
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
- Kennedy2015.PMF.worldPrior = PMF.uniformOfFintype Kennedy2015.KCard
Instances For
Equations
Instances For
§4. Findings — vacuous-zero discharges #
"moreThan3" doesn't apply at .3 → S1 .3 .moreThan3 = 0 (vacuous-zero).
L1("moreThan3") prefers .4 over .3 — Class A excludes the boundary semantically.
"bare3" doesn't apply at .4 → S1 .4 .bare3 = 0 (vacuous-zero).
L1("bare 3") peaked at .3 — bare numeral exact reading.
"fewerThan3" doesn't apply at .3 → S1 .3 .fewerThan3 = 0 (vacuous-zero, mirror of moreThan3).
L1("fewerThan3") prefers .2 over .3 — upper Class A excludes boundary.
§5. Findings — partition-dominance leaves (non-pointwise) #
Class B: L1 of "atLeast3" prefers .4 over .3. Friction: numerators equal (both 1/3), but partition functions don't pointwise dominate. At .3 the alternatives are {bare3, atLeast3, atMost3}; at .4 they are {moreThan3, atLeast3}. Neither set dominates the other. Needs partition function computation.
Upper Class B: L1 of "atMost3" prefers .2 over .3. Same friction as classB_strengthened_above_bare.
§6. Findings — cross-observation (different utterance, same world) #
Class B competition at the boundary: L1("bare 3" | .3) > L1("at least 3" | .3).
Structural discharge (post-0.230.409 lemma posterior_lt_of_score_cross_lt):
gt_iff_ltflips to<shapeunfold L1,posterior_lt_of_score_cross_lt- Reduces to cross-multiplied score comparison:
S1 .3 .atLeast3 * marginal .bare3 < S1 .3 .bare3 * marginal .atLeast3
Remaining leaf: the cross-multiplied numeric inequality requires
computing marginal .bare3 and marginal .atLeast3 (each a tsum over
Fin 6). Same partition-computation friction as classB_strengthened_above_bare
— would close once a pmf_partition_compute helper exists.
Upper Class B competition. Same shape as classB_competition_at_boundary.