[SP21]: quantifier scope ambiguity in truth-value judgments #
"When pragmatics matters more for truth-value judgments: An investigation of quantifier scope ambiguity", Glossa 6(1): 110. A modeling paper: RSA with lifted scope and QUD variables explains the endorsement patterns of [ML03] and successors, separating pragmatic factors (world and QUD priors) from grammatical processing (scope access).
Two models, each in its own namespace and each with two faces — an
exact-ℚ≥0 kernel face at the paper's parameters and a general-α
structural face on RSA/PMF.posterior operators:
EveryNot: "Every horse didn't jump", n = 2 (3 worlds × 2 utterances × 2 scopes × 3 QUDs; paper §3).TwoNot: "Two horses didn't jump", n = 4, parameterized by numeral reading (exact vs at-least; paper §4).
Main results #
EveryNot.s2_ordering_*: endorsement orders w0 > w1 > w2 across all Figure 2 prior configurations (endorsement at w=1: .29 at b_suc = 0.1, .80 at b_suc = 0.9).EveryNot.s2_qud_ordering: favoring none? < how-many? < all? monotonically increases endorsement (.38 < .48 < .63; the adult pattern of the paper's Figure 4).EveryNot.baseline_L1_zero_gt_one/_one_gt_two: the baseline L₁ ordering for every α > 0.EveryNot.S1g_all_qud_scope_invariant: under the all? QUD the speaker is scope-invariant — the structural mechanism of pragmatic dominance.TwoNot.exact_baseline_endorsement_high/atleast_baseline_endorsement_low/exact_vs_atleast_endorsement: the 1-of-2 vs 2-of-4 asymmetry flips with the numeral reading (Figure 7) — the paper's argument that exact numeral semantics is basic.TwoNot.L0_exact_gt_atLeast_at_w2: the L0 concentration contrast driving that asymmetry, for every α.every_not_scope_entailment/exact_two_not_scope_independent: universals have nested scope readings, exact numerals independent ones — why numerals are diagnostic for isomorphism.
Implementation notes #
Truth conditions are grounded compositionally (every_sem,
ScopeDerivation) and in the named numeral meanings of
Semantics.Numerals. The kernel faces use PMF.ofScores over ℚ≥0 score
chains at α = 1 (§3.2; costs cancel, fn. 8) with L0 taking no world prior
(fn. 6); the structural faces are parametric in α (the
parametric-prior layer is TODO). Developmental claim
(§3.3): children and adults differ only in these parameter values.
TODO #
General-α, parametric-prior versions of the QUD ordering and of the
exact-vs-at-least endorsement divergence (their α = 1 instances at the
paper's parameters are kernel-proved), together with the parametric prior
layer (PMF.binomial world prior, weighted scope/QUD priors) and the
general S2 they require; the emergent b_suc-monotonicity of endorsement
as a limit statement.
Shared domain: every-not (n = 2) #
Equations
- ScontrasPearl2021.instDecidableEqJumpOutcome x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- ScontrasPearl2021.instDecidableEqScopeReading x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Truth conditions for "Every horse didn't jump" under each scope reading.
Equations
- ScontrasPearl2021.scopeTruth ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome.zero = true
- ScontrasPearl2021.scopeTruth ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome.one = false
- ScontrasPearl2021.scopeTruth ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome.two = false
- ScontrasPearl2021.scopeTruth ScontrasPearl2021.ScopeReading.inverse ScontrasPearl2021.JumpOutcome.zero = true
- ScontrasPearl2021.scopeTruth ScontrasPearl2021.ScopeReading.inverse ScontrasPearl2021.JumpOutcome.one = true
- ScontrasPearl2021.scopeTruth ScontrasPearl2021.ScopeReading.inverse ScontrasPearl2021.JumpOutcome.two = false
Instances For
Shared domain: two-not (n = 4) #
How many horses jumped (out of 4).
- w0 : JumpOutcome4
- w1 : JumpOutcome4
- w2 : JumpOutcome4
- w3 : JumpOutcome4
- w4 : JumpOutcome4
Instances For
Equations
- ScontrasPearl2021.instDecidableEqJumpOutcome4 x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Convert JumpOutcome4 to natural number.
Equations
Instances For
Numeral reading: does "two" mean exactly 2 or at least 2?
- exact : NumeralReading
- atLeast : NumeralReading
Instances For
Equations
- ScontrasPearl2021.instDecidableEqNumeralReading x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Truth conditions for "two horses didn't jump" with n=4 horses (paper (6)).
Parameterized by numeral reading and scope configuration.
Surface scope (two > not): "There are two horses that didn't jump"
- Exact: exactly 2 didn't jump → exactly 2 jumped → w=2
- At-least: at least 2 didn't jump → at most 2 jumped → w ∈ {0,1,2}
Inverse scope (not > two): "It's not the case that two horses jumped"
- Exact: ¬(exactly 2 jumped) → w ≠ 2 → w ∈ {0,1,3,4}
- At-least: ¬(at least 2 jumped) → fewer than 2 jumped → w ∈ {0,1}
Equations
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.exact ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome4.w2 = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.exact ScontrasPearl2021.ScopeReading.surface x✝ = false
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.exact ScontrasPearl2021.ScopeReading.inverse ScontrasPearl2021.JumpOutcome4.w2 = false
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.exact ScontrasPearl2021.ScopeReading.inverse x✝ = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome4.w0 = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome4.w1 = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.surface ScontrasPearl2021.JumpOutcome4.w2 = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.surface x✝ = false
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.inverse ScontrasPearl2021.JumpOutcome4.w0 = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.inverse ScontrasPearl2021.JumpOutcome4.w1 = true
- ScontrasPearl2021.twoNotTruth ScontrasPearl2021.NumeralReading.atLeast ScontrasPearl2021.ScopeReading.inverse x✝ = false
Instances For
For universals, surface scope (∀>¬: none jumped) ENTAILS inverse scope (¬>∀: not all jumped). If no horse jumped, then trivially not every horse jumped. This means no truth-value judgment context can diagnose the isomorphism effect for universals: whenever surface is true, inverse is automatically true too.
The entailment is strict: inverse does NOT entail surface. At w=1 (one horse jumped), inverse scope is true (not all jumped) but surface scope is false (not none jumped).
For exact numerals, surface scope does NOT entail inverse scope. At w=2 (exactly 2 jumped out of 4), surface is true (exactly 2 didn't) but inverse is false (it IS the case that exactly 2 jumped). This independence is what makes numerals diagnostic for the isomorphism effect.
Inverse scope also does not entail surface for exact numerals. At w=0 (none jumped), inverse is true (¬(exactly 2 jumped)) but surface is false (not exactly 2 didn't jump, since all 4 didn't).
Numeral-semantics grounding #
Connects S&P's twoNotTruth truth conditions to linglib's numeral
semantics infrastructure (named meanings in Semantics.Numerals).
The truth conditions in the data file are grounded in the named meanings:
- Exact surface: "exactly 2 didn't jump" =
bareMeaning 2 (4 - w) - Exact inverse: "¬(exactly 2 jumped)" =
!(bareMeaning 2 w) - At-least surface: "≥2 didn't jump" =
atLeastMeaning 2 (4 - w) - At-least inverse: "¬(≥2 jumped)" =
!(atLeastMeaning 2 w)
Convergent evidence for exact semantics from [Ken15] (de-Fregean semantics where bare numerals mean =n) and [Mus04] (acquisition data — children reject "two" at w=3).
Exact surface: "exactly two didn't jump" (out of 4) ↔ exactly two jumped.
Matches bareMeaning 2 applied to the complement count (4 - w).
Exact inverse: "¬(exactly two jumped)" ↔ ¬(bareMeaning 2 w).
At-least surface: "at least two didn't jump" ↔ at most two jumped.
Matches atLeastMeaning 2 applied to the complement count.
At-least inverse: "¬(at least two jumped)" ↔ ¬(atLeastMeaning 2 w).
The negation-scope asymmetry collapses under exact semantics:
internal negation ¬(=3) and external negation ≠3 agree at world 4.
Lower-bound semantics preserves the negation-scope distinction:
internal negation ¬(≥3) and external negation ≠3 diverge at world 4.
[Ken15]'s resolution: exact meaning is basic, lower-bound is derived via type-shift. Both meanings are grammatically available.
The every-not model (§3) #
Utterances: null (silence) or "Every horse didn't jump".
Instances For
Equations
- ScontrasPearl2021.EveryNot.instDecidableEqUtt x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- ScontrasPearl2021.EveryNot.instDecidableEqQUD x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- ScontrasPearl2021.EveryNot.instDecidableEqLatent x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Extract scope reading from latent variable.
Equations
- ScontrasPearl2021.EveryNot.Latent.surfHowMany.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.EveryNot.Latent.surfAll.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.EveryNot.Latent.surfNone.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.EveryNot.Latent.invHowMany.scope = ScontrasPearl2021.ScopeReading.inverse
- ScontrasPearl2021.EveryNot.Latent.invAll.scope = ScontrasPearl2021.ScopeReading.inverse
- ScontrasPearl2021.EveryNot.Latent.invNone.scope = ScontrasPearl2021.ScopeReading.inverse
Instances For
Extract QUD from latent variable.
Equations
- ScontrasPearl2021.EveryNot.Latent.surfHowMany.qud = ScontrasPearl2021.EveryNot.QUD.howMany
- ScontrasPearl2021.EveryNot.Latent.invHowMany.qud = ScontrasPearl2021.EveryNot.QUD.howMany
- ScontrasPearl2021.EveryNot.Latent.surfAll.qud = ScontrasPearl2021.EveryNot.QUD.all_
- ScontrasPearl2021.EveryNot.Latent.invAll.qud = ScontrasPearl2021.EveryNot.QUD.all_
- ScontrasPearl2021.EveryNot.Latent.surfNone.qud = ScontrasPearl2021.EveryNot.QUD.none_
- ScontrasPearl2021.EveryNot.Latent.invNone.qud = ScontrasPearl2021.EveryNot.QUD.none_
Instances For
Truth conditions and compositional grounding #
RSA meaning derived from scopeTruth.
Null utterance is always true (uninformative baseline).
Equations
Instances For
2-horse domain for grounding truth conditions in quantifier semantics.
Instances For
Equations
- ScontrasPearl2021.EveryNot.instDecidableEqHorse x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Jump predicate for each world state. In the 1-horse world, exactly h1 jumped (the choice is arbitrary; only cardinality matters for the universally quantified sentence).
Equations
- ScontrasPearl2021.EveryNot.jumpIn ScontrasPearl2021.JumpOutcome.zero x✝ = false
- ScontrasPearl2021.EveryNot.jumpIn ScontrasPearl2021.JumpOutcome.one ScontrasPearl2021.EveryNot.Horse.h1 = true
- ScontrasPearl2021.EveryNot.jumpIn ScontrasPearl2021.JumpOutcome.one ScontrasPearl2021.EveryNot.Horse.h2 = false
- ScontrasPearl2021.EveryNot.jumpIn ScontrasPearl2021.JumpOutcome.two x✝ = true
Instances For
Equations
- One or more equations did not get rendered due to their size.
Restrictor: all entities are horses (trivial for this model).
Equations
- ScontrasPearl2021.EveryNot.horse_sem x✝ = True
Instances For
Scope predicate: did entity h jump in world w?
Equations
- ScontrasPearl2021.EveryNot.jumpIn_sem w h = (ScontrasPearl2021.EveryNot.jumpIn w h = true)
Instances For
Surface scope grounding: scopeTruth.surface derives from
compositional ⟦every⟧(horse)(λx.¬jump(x)), not stipulation.
Inverse scope grounding: scopeTruth.inverse derives from
negating the compositional ⟦every⟧(horse)(jump).
"Every horse didn't jump" as a ScopeDerivation: a single syntactic form
with multiple semantic values indexed by scope configuration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The ScopeDerivation's meaningAt agrees with scopeTruth for both readings:
when scopeTruth is true, the compositional derivation holds, and vice versa.
RSA meaning is grounded in ScopeDerivation: the meaning function used
by the RSA config matches the compositional scope derivation.
The every-not scope pair has surface-entails-inverse structure, making universals non-diagnostic for scope preferences: no truth-value judgment context can distinguish isomorphic from non-isomorphic behavior.
The kernel face: exact-ℚ scores at the paper parameters #
Literal listener (fn. 6: no world prior in L0).
Equations
- One or more equations did not get rendered due to their size.
Instances For
QUD projection (paper (3)): sums f over the QUD cell of the world.
Polymorphic over the value monoid — instantiated at ℚ≥0 by the kernel face
and at ℝ≥0∞ by the structural face.
Equations
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.howMany f ScontrasPearl2021.JumpOutcome.zero = f ScontrasPearl2021.JumpOutcome.zero
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.all_ f ScontrasPearl2021.JumpOutcome.zero = f ScontrasPearl2021.JumpOutcome.zero + f ScontrasPearl2021.JumpOutcome.one
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.none_ f ScontrasPearl2021.JumpOutcome.zero = f ScontrasPearl2021.JumpOutcome.zero
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.howMany f ScontrasPearl2021.JumpOutcome.one = f ScontrasPearl2021.JumpOutcome.one
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.all_ f ScontrasPearl2021.JumpOutcome.one = f ScontrasPearl2021.JumpOutcome.zero + f ScontrasPearl2021.JumpOutcome.one
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.none_ f ScontrasPearl2021.JumpOutcome.one = f ScontrasPearl2021.JumpOutcome.one + f ScontrasPearl2021.JumpOutcome.two
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.howMany f ScontrasPearl2021.JumpOutcome.two = f ScontrasPearl2021.JumpOutcome.two
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.all_ f ScontrasPearl2021.JumpOutcome.two = f ScontrasPearl2021.JumpOutcome.two
- ScontrasPearl2021.EveryNot.qProj ScontrasPearl2021.EveryNot.QUD.none_ f ScontrasPearl2021.JumpOutcome.two = f ScontrasPearl2021.JumpOutcome.one + f ScontrasPearl2021.JumpOutcome.two
Instances For
Speaker (α = 1, §3.2; costs cancel, fn. 8).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Joint pragmatic-listener world score: P(w)·Σ_{i,q} P(i)·P(q)·S1.
Equations
- ScontrasPearl2021.EveryNot.l1Score wp sp qp u w = wp w * ∑ lat : ScontrasPearl2021.EveryNot.Latent, sp lat.scope * qp lat.qud * ScontrasPearl2021.EveryNot.s1Score lat.scope lat.qud w u
Instances For
Normalized world posterior.
Equations
- ScontrasPearl2021.EveryNot.l1Post wp sp qp u = PMF.normalizeScores (ScontrasPearl2021.EveryNot.l1Score wp sp qp u)
Instances For
Binomial(2, 0.1) ∝ (81, 18, 1).
Equations
Instances For
Binomial(2, 0.5) ∝ (1, 2, 1).
Equations
Instances For
Binomial(2, 0.9) ∝ (1, 18, 81).
Equations
Instances For
Uniform scope prior (P(inverse) = 0.5, the default).
Equations
Instances For
Surface-only scope prior (P(inverse) = 0).
Equations
Instances For
Uniform QUD prior.
Equations
Instances For
Biased QUD prior: the favored QUD gets 0.9, others 0.05 (∝ 18:1:1).
Equations
- ScontrasPearl2021.EveryNot.biasQP q₀ q = if q = q₀ then 18 else 1
Instances For
Pragmatic listener over worlds.
Equations
- ScontrasPearl2021.EveryNot.l1 wp sp qp u = PMF.ofScores PMF.Fallback.uniform (ScontrasPearl2021.EveryNot.l1Score wp sp qp u)
Instances For
Endorsement speaker S₂ (§3.1): the L1 world posterior renormalized per world.
Equations
- ScontrasPearl2021.EveryNot.s2 wp sp qp w = PMF.ofScores PMF.Fallback.uniform fun (u : ScontrasPearl2021.EveryNot.Utt) => ScontrasPearl2021.EveryNot.l1Post wp sp qp u w
Instances For
L₁ predictions #
Baseline L₁ (b_suc = 0.1) ranks the worlds w0 > w1 > w2: both scopes verify w0 (prior 81), only inverse verifies w1 (prior 18), neither verifies w2.
Scope ambiguity boosts the partial world: with both scopes active, L₁(w=1) exceeds its surface-only value (inverse scope verifies w=1).
S₂ endorsement predictions #
The endorsement ordering w0 > w1 > w2 is robust across all Figure 2 configurations (even where L₁ itself reverses, as under b_suc = 0.9: per-world renormalization restores it). Each ordering is two cross-world comparisons of the endorsement distribution.
Baseline (b_suc = 0.1): endorsement orders w0 > w1 > w2.
Default (b_suc = 0.5): same ordering.
High base rate (b_suc = 0.9): same ordering, though L₁ reverses.
Supportive context (b_suc = 0.9, all?-biased QUD): same ordering.
QUD manipulation (Figure 2, center panel): endorsement at the partial world increases none? < how-many? < all? (paper values .38 < .48 < .63) — all? is fully resolved by either scope, so favoring it makes the ambiguous utterance maximally useful. Matches the adult data of Song et al. 2021 reproduced as the paper's Figure 4.
The structural face: general α #
The same model on the RSA operator face, parametric in the rationality
α and the prior parameters — the general theorems the kernel instances
above sample.
The uniform world prior #
Uniform world prior (worldPriorAt below is the paper-faithful
parametric version).
Equations
- ScontrasPearl2021.EveryNot.worldPrior = PMF.uniformOfFintype ScontrasPearl2021.JumpOutcome
Instances For
L0 as RSA.L0OfBoolMeaning #
uttMeaning lat.scope u w is Bool-valued, so L0 is uniform on the
extension. Each scope reading induces its own L0 distribution (the meaning
function's first argument is ScopeReading, not just Utt).
Extension of uttMeaning s u: the worlds where u is true under scope s.
Equations
Instances For
QUD projection facts on ℝ≥0∞ #
The projection at w under QUD q is bounded above by the total mass
of f (a finite sum of pieces of Σ f). Used to discharge ≠ ∞.
The projection of L0 includes the mass at w itself (since w is in
its own equivalence class for every QUD). Used to derive positivity of the
rpow speaker score at the witness world.
If L0 is non-zero at w, the QUD-projected sum is non-zero at w.
S1g — speaker conditional on (latent, world) #
S1g lat w u ∝ (qProj lat.qud (L0 lat.scope u) w)^α. The cover witness
is the null utterance: its L0 is uniform on Finset.univ, so the projection
is positive at every w (every QUD class contains some world where null's
L0 is positive — and null's L0 is positive everywhere).
The unnormalised score: (qProj lat.qud (L0 lat.scope u) w)^α.
Equations
- ScontrasPearl2021.EveryNot.s1Weight α lat w u = ScontrasPearl2021.EveryNot.qProj lat.qud (fun (w' : ScontrasPearl2021.JumpOutcome) => (ScontrasPearl2021.EveryNot.L0 lat.scope u) w') w ^ α
Instances For
Pragmatic speaker conditioned on (latent, world).
Equations
- ScontrasPearl2021.EveryNot.S1g hα lat w = PMF.normalize (ScontrasPearl2021.EveryNot.s1Weight α lat w) ⋯ ⋯
Instances For
Marginal speaker — PMF.bind over the latent prior #
The product latent is scope × QUD (flattened to Latent). PMF.bind
against a latentPrior : PMF Latent is mathlib's idiom for marginalising
over a chained random variable — exactly what's needed here.
Speaker marginalised over latent state.
Equations
- ScontrasPearl2021.EveryNot.marginalSpeaker hα latentPrior w = latentPrior.bind fun (lat : ScontrasPearl2021.EveryNot.Latent) => ScontrasPearl2021.EveryNot.S1g hα lat w
Instances For
The cover witness lifts to the marginal speaker: if any latent has
positive prior mass and S1g is non-zero on null, the marginal speaker is
non-zero on null. Used to discharge marginal ≠ 0 for L1 at u = null.
L1 — Bayesian inversion via PMF.posterior #
The everyNot utterance also has L1-marginal cover: at world .zero,
both scope readings make everyNot true, so L0 puts positive mass there,
S1g(everyNot|lat,.zero) > 0 for every lat (since qudProject ≥ L0(.zero) > 0),
and the marginal speaker is positive on everyNot at .zero.
Pragmatic listener: PMF.posterior of the latent-marginalised speaker
against the world prior. The "L1 = Bayesian inversion" claim is true by
construction (PMF.posterior IS Bayes' rule).
Equations
- ScontrasPearl2021.EveryNot.L1 hα latentPrior u hMarg = PMF.posterior (ScontrasPearl2021.EveryNot.marginalSpeaker hα latentPrior) ScontrasPearl2021.EveryNot.worldPrior u hMarg
Instances For
The general-α baseline orderings #
General-α companions of baseline_l1_ordering: the L₁ orderings hold for
every α > 0 and any latentPrior with positive mass everywhere. The
structural shell: posterior_lt_iff_kernel_lt_of_uniform cancels the L1
marginal and the uniform world prior, PMF.bind_lt_bind reduces the
marginal speaker to per-latent S1g comparisons, and each latent case is a
vacuous zero, an equality of score functions, or rpow monotonicity.
Surface-scope-favored latent prior: every latent has positive mass.
Used as the default latentPrior for the findings below.
Equations
- ScontrasPearl2021.EveryNot.uniformLatentPrior = PMF.uniformOfFintype ScontrasPearl2021.EveryNot.Latent
Instances For
extension X .null = Finset.univ for both scopes — null is true everywhere.
Structurally generic: constructs cover witnesses for universal-extension
utterances.
L0 values at each (scope, utterance, world) — the leaves every comparison below reduces to.
At .surfHowMany, surface scope makes .everyNot false at .one, so
the speaker score vanishes there but not at .zero.
Per-latent comparison for the w0-vs-w1 ordering: no latent gives
.everyNot more mass at .one than at .zero, strictly less at
.surfHowMany. Each case is a vacuous zero, an equality of score
functions, or ≤ of projections lifted through rpow.
Baseline L1 ordering L1(zero | everyNot) > L1(one | everyNot) for
every α > 0: cancel the marginal and the uniform world prior, then compare
the marginal speakers per latent.
At .invHowMany, inverse scope makes .everyNot false at .two, so
the speaker score vanishes there but not at .one.
Per-latent comparison for the w1-vs-w2 ordering: five cases are
vacuous zeros at .two, .invNone is an equality.
Baseline L1 ordering L1(one | everyNot) > L1(two | everyNot) for
every α > 0. Same discharge as baseline_L1_zero_gt_one.
Scope collapse under QUD = all? (paper §3.2, restated §5.1) #
The paper's central explanatory move (p. 17, 29-30): when QUD = all? is
favored, BOTH scope readings of "every horse didn't jump" answer the QUD
identically with "no, not all succeeded". This collapses the scope distinction
at the speaker layer — the structural mechanism behind pragmatic
dominance (the scope prior becoming nearly irrelevant).
Formalized at three layers: qProj .all_ is scope-independent at
every utterance and world; hence S1g hα .surfAll = S1g hα .invAll as
PMFs; hence the surface/inverse all?-latents contribute interchangeably
to the marginal speaker.
Under QUD = all?, the projected L0 mass is scope-invariant at every
utterance and world: the raw L0s differ (surface concentrates on .zero,
inverse splits over .zero, .one) but the all?-cell sums agree.
Under QUD = all?, the speaker S1g is identical for surface
and inverse scope readings (at every world).
Direct corollary of the L0 invariance lifted through PMF.normalize: the score functions
are pointwise equal (since s1Weight only depends on lat.qud and lat.scope
through qProj which collapses the scope distinction), so the
normalized PMFs are equal.
Scope-prior irrelevance under QUD = all? #
The headline structural consequence of the speaker collapse: when the latent prior is split
between .surfAll and .invAll, the contribution of these two latents to
marginalSpeaker depends only on the SUM of their prior weights, not the
individual values. Direct corollary of S1g_all_qud_scope_invariant
- ENNReal distributivity (
add_mul).
This is the structural mechanism behind the pragmatic-dominance claim:
shifting prior mass between .invAll and .surfAll doesn't change the
all?-QUD speaker behavior.
Under QUD = all?, the .surfAll and .invAll
contributions to marginalSpeaker combine as a single sum-weighted term —
their individual prior weights don't matter, only the total.
Proof: S1g_all_qud_scope_invariant + ENNReal add_mul.
The general-α QUD ordering (open) #
The kernel-checked s2_qud_ordering above proves Figure 2's center panel
at the paper's exact parameters (α = 1, b_suc = 0.5, 18:1 QUD bias). The
general-α, parametric-prior statement — endorsement at .one ordered
across qudPriorAt values favoring none? < how-many? < all? — remains
open: the scope-collapse theorems above supply the all?-latent structure,
but the cross-prior comparison needs ENNReal arithmetic on the closed-form
chain (module-docstring TODO).
A related non-theorem, worth recording: endorsement monotonicity in
b_suc (Figure 2, left) is NOT factor-wise — worldPriorAt b_suc .one
equals 2·b_suc·(1 − b_suc), symmetric in b_suc ↔ 1 − b_suc and peaked
at 1/2 — so the observed monotone endorsement (.29/.50/.80) is an emergent
property of the full chain: as b_suc → 1 the utterance gains
informativity at .one by ruling out the high-prior .two. Any
formalization must go through the full chain, e.g. as a limit statement.
The two-not model (§4) #
Utterances: null (silence) or "two horses didn't jump".
Instances For
Equations
- ScontrasPearl2021.TwoNot.instDecidableEqUtt x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
QUDs for the two-not model (paper (7)). Five partitions over the 5-world domain. The two numeral-specific QUDs (two=?, two≥?) are added because explicitly mentioning a numeral makes that cardinality potentially relevant to the topic of conversation.
Instances For
Equations
- ScontrasPearl2021.TwoNot.instDecidableEqQUD5 x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Flattened latent variable: scope reading × QUD. 2 scopes × 5 QUDs = 10 constructors.
- surfHowMany : Latent10
- surfAll : Latent10
- surfNone : Latent10
- surfTwoExact : Latent10
- surfTwoAtLeast : Latent10
- invHowMany : Latent10
- invAll : Latent10
- invNone : Latent10
- invTwoExact : Latent10
- invTwoAtLeast : Latent10
Instances For
Equations
- ScontrasPearl2021.TwoNot.instDecidableEqLatent10 x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Extract scope reading from latent variable.
Equations
- ScontrasPearl2021.TwoNot.Latent10.surfHowMany.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.TwoNot.Latent10.surfAll.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.TwoNot.Latent10.surfNone.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.TwoNot.Latent10.surfTwoExact.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.TwoNot.Latent10.surfTwoAtLeast.scope = ScontrasPearl2021.ScopeReading.surface
- ScontrasPearl2021.TwoNot.Latent10.invHowMany.scope = ScontrasPearl2021.ScopeReading.inverse
- ScontrasPearl2021.TwoNot.Latent10.invAll.scope = ScontrasPearl2021.ScopeReading.inverse
- ScontrasPearl2021.TwoNot.Latent10.invNone.scope = ScontrasPearl2021.ScopeReading.inverse
- ScontrasPearl2021.TwoNot.Latent10.invTwoExact.scope = ScontrasPearl2021.ScopeReading.inverse
- ScontrasPearl2021.TwoNot.Latent10.invTwoAtLeast.scope = ScontrasPearl2021.ScopeReading.inverse
Instances For
Extract QUD from latent variable.
Equations
- ScontrasPearl2021.TwoNot.Latent10.surfHowMany.qud = ScontrasPearl2021.TwoNot.QUD5.howMany
- ScontrasPearl2021.TwoNot.Latent10.invHowMany.qud = ScontrasPearl2021.TwoNot.QUD5.howMany
- ScontrasPearl2021.TwoNot.Latent10.surfAll.qud = ScontrasPearl2021.TwoNot.QUD5.all_
- ScontrasPearl2021.TwoNot.Latent10.invAll.qud = ScontrasPearl2021.TwoNot.QUD5.all_
- ScontrasPearl2021.TwoNot.Latent10.surfNone.qud = ScontrasPearl2021.TwoNot.QUD5.none_
- ScontrasPearl2021.TwoNot.Latent10.invNone.qud = ScontrasPearl2021.TwoNot.QUD5.none_
- ScontrasPearl2021.TwoNot.Latent10.surfTwoExact.qud = ScontrasPearl2021.TwoNot.QUD5.twoExact
- ScontrasPearl2021.TwoNot.Latent10.invTwoExact.qud = ScontrasPearl2021.TwoNot.QUD5.twoExact
- ScontrasPearl2021.TwoNot.Latent10.surfTwoAtLeast.qud = ScontrasPearl2021.TwoNot.QUD5.twoAtLeast
- ScontrasPearl2021.TwoNot.Latent10.invTwoAtLeast.qud = ScontrasPearl2021.TwoNot.QUD5.twoAtLeast
Instances For
Truth conditions and compositional grounding #
RSA meaning for the two-not model, parameterized by numeral reading. Null utterance is always true (uninformative baseline).
Equations
- ScontrasPearl2021.TwoNot.uttMeaning nr x✝¹ ScontrasPearl2021.TwoNot.Utt.null x✝ = true
- ScontrasPearl2021.TwoNot.uttMeaning nr x✝¹ ScontrasPearl2021.TwoNot.Utt.twoNot x✝ = ScontrasPearl2021.twoNotTruth nr x✝¹ x✝
Instances For
Equations
- ScontrasPearl2021.TwoNot.instDecidableEqHorse4 x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Jump predicate for each world state (out of 4 horses). In partial worlds, the first k horses jumped.
Equations
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w0 x✝ = false
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w1 ScontrasPearl2021.TwoNot.Horse4.h1 = true
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w1 x✝ = false
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w2 ScontrasPearl2021.TwoNot.Horse4.h1 = true
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w2 ScontrasPearl2021.TwoNot.Horse4.h2 = true
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w2 x✝ = false
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w3 ScontrasPearl2021.TwoNot.Horse4.h1 = true
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w3 ScontrasPearl2021.TwoNot.Horse4.h2 = true
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w3 ScontrasPearl2021.TwoNot.Horse4.h3 = true
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w3 x✝ = false
- ScontrasPearl2021.TwoNot.jumpIn4 ScontrasPearl2021.JumpOutcome4.w4 x✝ = true
Instances For
Restrictor: all entities are horses (trivial for this model).
Equations
- ScontrasPearl2021.TwoNot.horse4_sem x✝ = True
Instances For
Jump predicate as Montague semantic value.
Equations
- ScontrasPearl2021.TwoNot.jumpIn4_sem w h = (ScontrasPearl2021.TwoNot.jumpIn4 w h = true)
Instances For
"Two horses didn't jump" as a ScopeDerivation under exact semantics:
a single syntactic form with multiple semantic values indexed by scope.
Equations
- One or more equations did not get rendered due to their size.
Instances For
"Two horses didn't jump" as a ScopeDerivation under at-least semantics.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exact two-not scope pair has INDEPENDENT readings: neither entails the other. This independence makes exact numerals diagnostic for the isomorphism effect — unlike universals, which have nested readings.
At-least two-not has NESTED readings: inverse (true at {w0,w1}) entails surface (true at {w0,w1,w2}). Like universals, at-least numerals are non-diagnostic for the isomorphism effect.
The kernel face: exact-ℚ scores at the paper parameters #
Literal listener (fn. 6: no world prior in L0).
Equations
- One or more equations did not get rendered due to their size.
Instances For
QUD projection (paper (7)).
Equations
- One or more equations did not get rendered due to their size.
- ScontrasPearl2021.TwoNot.qProj ScontrasPearl2021.TwoNot.QUD5.howMany f w = f w
- ScontrasPearl2021.TwoNot.qProj ScontrasPearl2021.TwoNot.QUD5.all_ f ScontrasPearl2021.JumpOutcome4.w4 = f ScontrasPearl2021.JumpOutcome4.w4
- ScontrasPearl2021.TwoNot.qProj ScontrasPearl2021.TwoNot.QUD5.none_ f ScontrasPearl2021.JumpOutcome4.w0 = f ScontrasPearl2021.JumpOutcome4.w0
- ScontrasPearl2021.TwoNot.qProj ScontrasPearl2021.TwoNot.QUD5.twoExact f ScontrasPearl2021.JumpOutcome4.w2 = f ScontrasPearl2021.JumpOutcome4.w2
- ScontrasPearl2021.TwoNot.qProj ScontrasPearl2021.TwoNot.QUD5.twoAtLeast f w = f ScontrasPearl2021.JumpOutcome4.w0 + f ScontrasPearl2021.JumpOutcome4.w1
Instances For
Speaker (α = 1; costs cancel).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Joint pragmatic-listener world score.
Equations
- ScontrasPearl2021.TwoNot.l1Score nr wp sp qp u w = wp w * ∑ lat : ScontrasPearl2021.TwoNot.Latent10, sp lat.scope * qp lat.qud * ScontrasPearl2021.TwoNot.s1Score nr lat.scope lat.qud w u
Instances For
Normalized world posterior.
Equations
- ScontrasPearl2021.TwoNot.l1Post nr wp sp qp u = PMF.normalizeScores (ScontrasPearl2021.TwoNot.l1Score nr wp sp qp u)
Instances For
Binomial(4, 0.1) ∝ (6561, 2916, 486, 36, 1).
Equations
- ScontrasPearl2021.TwoNot.lowWP4 ScontrasPearl2021.JumpOutcome4.w0 = 6561
- ScontrasPearl2021.TwoNot.lowWP4 ScontrasPearl2021.JumpOutcome4.w1 = 2916
- ScontrasPearl2021.TwoNot.lowWP4 ScontrasPearl2021.JumpOutcome4.w2 = 486
- ScontrasPearl2021.TwoNot.lowWP4 ScontrasPearl2021.JumpOutcome4.w3 = 36
- ScontrasPearl2021.TwoNot.lowWP4 ScontrasPearl2021.JumpOutcome4.w4 = 1
Instances For
Surface-biased scope prior: P(inverse) = 0.1 (∝ 9:1).
Equations
Instances For
Uniform QUD prior.
Equations
Instances For
Endorsement speaker S₂ over the two-not listener (baseline priors: b_suc = 0.1, P(inverse) = 0.1, uniform QUDs).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Endorsement predictions (§4.2, Figure 7) #
Under exact semantics, surface scope pinpoints w=2 as the unique true world, so baseline endorsement at w=2 is high; under at-least semantics it spreads over {w0,w1,w2} and endorsement is low. The same baseline that gives low 1-of-2 endorsement gives high 2-of-4 endorsement only under exact semantics — the paper's argument for exact numeral meanings.
Exact semantics: baseline S₂ endorsement at w=2 exceeds 1/2 (Figure 7 right, ≈ .8).
At-least semantics: baseline S₂ endorsement at w=2 is below 1/2 (Figure 7 left, ≈ .4).
Exact endorsement at w=2 exceeds at-least endorsement: one true surface world versus three.
Informativity contrasts #
The key informativity contrast: under exact semantics, surface scope has exactly 1 true world (w2), while under at-least it has 3 (w0–w2). This drives the endorsement difference via S1 informativity.
Exact inverse has 4 true worlds (w0,w1,w3,w4) — very uninformative. Since w2 is the only world where surface scope is true, inverse scope contributes nothing at w2 (it's false there), explaining why surface scope dominates the S2 prediction under exact semantics.
At-least inverse has 2 true worlds (w0,w1) — more informative than exact inverse's 4, but still less informative than exact surface's 1.
The structural face: exact-vs-at-least necessity (§4.2.2) #
The paper's strongest contribution to the numeral-semantics literature:
"the current model requires one more ingredient to account for the 1-of-2 vs 2-of-4 difference in adult behavior: an exact semantics for utterances with numerals (in contrast to an at-least semantics; for discussion, see e.g. Geurts 2006; Breheny 2008)."
Figure 7 (paper p.27) shows the contrast explicitly: under exact semantics
the surface scope of twoNot pinpoints w=2 as the unique true world →
high S2 endorsement; under at-least semantics the surface scope is true at
multiple worlds {w0, w1, w2} → S2 dilutes across 3 worlds → low endorsement.
The paper's core empirical move: only with exact semantics can the model reproduce adult endorsement-rate divergence between EveryNot (1-of-2) and TwoNot (2-of-4).
This section proves the structural foundation: at w=2, the surface-scope
twoNot L0 mass is strictly higher under exact semantics than under
at-least semantics (a singleton extension {w2} versus {w0, w1, w2}). The
endorsement difference proved on the kernel face above
(exact_vs_atleast_endorsement and the two threshold theorems) inherits
from this concentration.
Extension of uttMeaning nr s u: worlds where u is true under
numeral reading nr and scope s.
Equations
Instances For
Under exact semantics, surface twoNot extension is the singleton {w2}
(only "exactly 2 didn't jump" is true when exactly 2 jumped).
Under at-least semantics, surface twoNot extension is {w0, w1, w2}
(at least 2 didn't jump iff at most 2 jumped).
L0 (literal listener) for the TwoNot model #
Parameterized on numeral reading nr (exact vs at-least), determining the
extension's cardinality.
TwoNot literal listener: uniform on extension under given numeral reading.
Equations
- ScontrasPearl2021.TwoNot.L0_4 nr s u = RSA.L0OfBoolMeaning (ScontrasPearl2021.TwoNot.uttMeaning nr s) u ⋯
Instances For
The L0 concentration contrast #
At world w2 (2 of 4 jumped), surface scope twoNot L0 mass is strictly
higher under exact than under at-least — because the extension cardinality
shrinks from 3 to 1. The S2 endorsement difference inherits from this.
The structural foundation of the exact-semantics necessity claim:
at world w2, surface-scope twoNot L0 is strictly higher under EXACT
semantics (1) than under AT-LEAST semantics (1/3).
Proof: extension cardinality is 1 (exact) vs 3 (at-least); uniform-on-extension gives 1/1 = 1 vs 1/3.
This single L0 fact propagates to S2 endorsement: under exact, S2 puts more
mass on .twoNot at w=2 (informative utterance pinpoints the world);
under at-least, the L0 dilutes across 3 worlds → less informative → lower
S2 endorsement. The structural mechanism behind paper's Figure 7.
Vacuous-zero contrast at the divergence worlds #
The other side of the exact-vs-at-least divergence: at worlds w0 and w1
(where 0 or 1 horses jumped), surface-scope twoNot is FALSE under exact
("not exactly 2 didn't jump") but TRUE under at-least ("at least 2 didn't
jump"). So L0 mass under exact at these worlds is 0; L0 mass under at-least
is 1/3 (positive).
This is the "dilution" mechanism: at-least's broader extension means L0 mass spreads to "wrong" worlds.
At worlds w0 and w1, exact L0 is zero (surface twoNot false), at-least L0 is positive (surface twoNot true).
The full endorsement-rate divergence at the paper's parameters is
proved on the kernel face above (exact_baseline_endorsement_high,
atleast_baseline_endorsement_low, exact_vs_atleast_endorsement); a
general-α propagation of the L0 concentration through the 5-world ×
10-latent chain remains open (module-docstring TODO).
The cross-model asymmetry (§4.2.2) #
The paper's key argument: the SAME "baseline" parameters that produce low 1-of-2 endorsement also produce high 2-of-4 endorsement — but only under exact numeral semantics.
The models have different world types (JumpOutcome vs JumpOutcome4),
so we state this as two separate bounds that together establish the
1-of-2 vs 2-of-4 asymmetry:
- Every-not baseline: S2(everyNot|w=1) < 1/2 (low)
- Two-not exact baseline: S2(twoNot|w=2) > 1/2 (high)
- Two-not at-least baseline: S2(twoNot|w=2) < 1/2 (low)
Both baselines use b_suc = 0.1 (the two-not one adds P(inv) = 0.1).
The asymmetry between the second and third is the argument for exact
semantics: changing only the numeral reading flips the prediction.
Every-not baseline endorsement at w=1 is below 1/2: the low end of the 1-of-2 vs 2-of-4 asymmetry, with the same b_suc = 0.1 world prior as the two-not baseline.