NoisyLex — Noisy lexical semantics bundle #
@cite{degen-etal-2020} @cite{waldon-degen-2021} @cite{schlotterbeck-wang-2023}
A NoisyLex U W packages the per-(token, world) lex function shared by
RSA models with continuous / Product-of-Experts semantics. From the
bundle we derive:
prefixMeaning— PoE composition over a list of tokens (delegates toRSA.prefixMeaning)toRSAConfig— one-shot RSAConfig: meaning islexdirectlytoRSAConfigSeq scene— sequential RSAConfig with α=1, no cost (S&W's β=1 default)toRSAConfigSeqWithUtility scene α α_pos cost— sequential with rpow + exp(-α·cost) speaker (W&D-flavored speaker, PoE-prefix L0)
This is the structure-shaped alternative to the typeclass roadmap
that previously lived in Channel.lean. There is no canonical noisy
semantics per (U, W) pair — every paper picks its own reliability
parameters — so each study constructs an explicit NoisyLex value and
calls a builder, mirroring how mathlib's PMF / Kernel are bundled
structures rather than typeclass-driven.
Scope #
The builders here all use PoE prefix-product L0 semantics — the
meaning at a prefix is the product of per-word lex values. Studies
that use extension-averaging L0 instead (e.g. @cite{waldon-degen-2021}'s
continuousMeaning averages PoE over scene-filtered completions) need
their own bespoke RSAConfig.mk; the bundle's lex and prefixMeaning
are still useful as building blocks (see WaldonDegen2021.uttContinuousQ_eq_prefixMeaning).
A complementary bundle for extension-counting (Boolean truth, not
graded) semantics (@cite{cohn-gordon-goodman-potts-2019}) lives in
Incremental.lean as IncrementalSemantics.
Bundle of noisy lexical semantics: a per-(token, world) ℚ-valued
score that is non-negative everywhere. The lex field is the
"Product of Experts" per-word factor underlying
@cite{degen-etal-2020}, @cite{waldon-degen-2021}, and
@cite{schlotterbeck-wang-2023}.
Currently ℚ-valued for computable studies. PMF / ℝ generalization
is future work tracked in MEMORY.md (RSA → mathlib-PMF migration).
- lex : U → W → ℚ
Per-(token, world) noisy meaning value.
Noisy meaning is non-negative.
Instances For
The PoE prefix meaning derived from the lex function — multiplicative
composition over a list of tokens. Delegates to RSA.prefixMeaning.
Equations
- s.prefixMeaning pfx w = RSA.prefixMeaning s.lex pfx w
Instances For
Standard noisy-lex construction: pick a "true" reliability r⁺ and
a noise floor r⁻ (typically 1 - r⁺), and let lex u w = r⁺ when
applies u w and r⁻ otherwise. This is the @cite{degen-etal-2020}
Bernoulli-channel form: lex = noiseChannel r⁺ r⁻ (applies? 1 0).
Equations
- RSA.NoisyLex.ofChannel applies rPlus rMinus h0 h1 = { lex := fun (u : U) (w : W) => if applies u w = true then rPlus else rMinus, lex_nonneg := ⋯ }
Instances For
The ofChannel lex agrees with RSA.Noise.noiseChannel.
One-shot RSAConfig from a NoisyLex bundle. Meaning is just the lex
function; Ctx = Unit, α = 1, no cost, uniform priors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sequential RSAConfig from a NoisyLex bundle, optionally scene-restricted.
Meaning is the PoE product over ctx ++ [u]; off-scene worlds get 0.
Default scene is the full domain. α = 1, no cost (the
@cite{schlotterbeck-wang-2023} "S1^inc with β = 1" configuration).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Headline order-independence at the bundle level. The meaning
of a sequential noisy-RSA config depends on (ctx, u) only through
the multiset ctx ++ [u]. Inherits from RSA.prefixMeaning_perm.
Sequential RSAConfig with rpow + exp(-α·cost) speaker (the W&D-style
soft-rational speaker), but PoE-prefix L0 meaning. For studies that
want α ≠ 1 or non-zero per-word cost while still using PoE semantics.
Equations
- One or more equations did not get rendered due to their size.