Documentation

Linglib.Phenomena.Imprecision.Studies.EgreEtAl2023

Égré et al. (2023) #

@cite{egre-etal-2023}

"On the optimality of vagueness: 'around', 'between', and the Sorites" Linguistics and Philosophy 46:1101–1130

Phenomena #

  1. "Around n" produces triangular (tent-shaped) interpretation distributions
  2. "Around n" conveys more shape information than "between a and b"
  3. Speakers prefer "around n" for peaked private distributions
  4. The round/non-round asymmetry affects "around" acceptability
  5. Sorites-like tolerance chains for "around"

RSA Model #

"Around n" is interpreted via marginalization over a tolerance parameter y. BIR: P(x=k | around n) ∝ P(x=k) × Σ_{y≥|n-k|} P(y)

The BIR is the literal listener (L0). The RSA layers (S1, higher Ln) build on this via KL-divergence speaker utility and softmax. The paper shows this model produces a triangular posterior, satisfies the Ratio Inequality, and explains why speakers prefer "around n" over "between a b" for peaked private distributions. The LU limitation (Appendix A) proves standard LU models cannot derive the triangular shape.

Shape inference datum: "around n" vs "between a b" interpretation shape.

The key empirical claim: hearing "around n" leads to a peaked (triangular) interpretation centered on n, while "between a b" leads to a flat (uniform) interpretation over [a,b].

  • vagueExpression : String

    The vague expression

  • preciseAlternative : String

    The precise alternative

  • center :

    Center value n

  • vagueIsPeaked : Bool

    Does the vague expression produce peaked interpretation?

  • preciseIsPeaked : Bool

    Does the precise alternative produce peaked interpretation?

  • notes : String

    Notes

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      "Around 20" produces peaked interpretation; "between 10 and 30" does not.

      Source: Égré et al. 2023, Sections 5-6, Figure 2 vs Figure 5

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Speaker preference datum: when does a speaker choose "around n" over "between a b"?

        • privateDistShape : String

          Speaker's private distribution shape

        • preferredMessage : String

          Preferred message

        • alternativeMessage : String

          Alternative message

        • reason : String

          Why preferred?

        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Speakers with peaked beliefs prefer "around n".

            Source: Égré et al. 2023, Section 6

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Speakers with flat beliefs prefer "between a b".

              Source: Égré et al. 2023, Section 6

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Sorites chain datum for "around".

                The sorites for "around n": If k is around n, and k' is close to k, then k' is around n. Applied repeatedly, this would make 0 "around 100".

                • center :

                  Center value

                • stepSize :

                  Step size in chain

                • startValue :

                  Starting value (clearly "around n")

                • endValue :

                  Ending value (clearly not "around n")

                • individualStepsCompelling : Bool

                  Is each individual step compelling?

                • conclusionAcceptable : Bool

                  Is the conclusion acceptable?

                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Equations
                    • EgreEtAl2023.soritesAround20 = { center := 20, stepSize := 1, startValue := 20, endValue := 0, individualStepsCompelling := true, conclusionAcceptable := false }
                    Instances For

                      LU limitation datum: observations that LU cannot distinguish.

                      The LU model assigns the same speaker probabilities to observations with the same support, even when their shapes differ dramatically.

                      • observation1 : String

                        First observation

                      • shape1 : String

                        First observation shape

                      • observation2 : String

                        Second observation

                      • shape2 : String

                        Second observation shape

                      • sameSupport : Bool

                        Same support?

                      • luDistinguishes : Bool

                        LU distinguishes them?

                      • birDistinguishes : Bool

                        BIR model distinguishes them?

                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Peaked vs flat distributions with same support: LU fails, BIR succeeds.

                          Source: Égré et al. 2023, Section 7, Appendix A

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Closed-form prediction datum: the triangular posterior formula.

                            Under uniform priors on x in {0,...,N} and y in {0,...,N}: P(x=k | around n) = (n - |n-k| + 1) / (n+1)^2

                            • domainMax :

                              Domain maximum N

                            • center :

                              Center n

                            • value :

                              Value k

                            • expectedProb :

                              Expected probability (rational)

                            • notes : String

                              Notes

                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                P(x=20 | around 20) under uniform prior on {0,...,40}

                                Equations
                                Instances For

                                  P(x=15 | around 20) under uniform prior on {0,...,40}

                                  Equations
                                  • EgreEtAl2023.closedForm_offset5 = { domainMax := 40, center := 20, value := 15, expectedProb := 16 / 441, notes := "5 units from center, probability drops linearly" }
                                  Instances For
                                    Instances For
                                      def EgreEtAl2023.instReprValue.repr :
                                      ValueStd.Format
                                      Equations
                                      Instances For
                                        @[implicit_reducible]
                                        Equations
                                        @[implicit_reducible]
                                        Equations

                                        Tolerance y: "around n" with tolerance y means x ∈ [n-y, n+y].

                                        Instances For
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            @[implicit_reducible]
                                            Equations
                                            @[implicit_reducible]
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def EgreEtAl2023.aroundMeaning (n : ) (y : Tolerance) (x : Value) :
                                              Bool

                                              ⟦around n⟧(y)(x) = 1 iff |n - x| ≤ y

                                              Equations
                                              Instances For
                                                def EgreEtAl2023.betweenMeaning (a b : ) (x : Value) :
                                                Bool
                                                Equations
                                                Instances For
                                                  def EgreEtAl2023.exactlyMeaning (n : ) (x : Value) :
                                                  Bool
                                                  Equations
                                                  Instances For
                                                    def EgreEtAl2023.birWeight (n : ) (x : Value) :

                                                    BIR weight: Σ_{y ≥ |n-x|} P(y) under uniform P(y) on {0,...,n}. Section 3.2.2, p.1085: y ranges over {0,...,n}, not the full value domain.

                                                    Equations
                                                    Instances For
                                                      def EgreEtAl2023.birPosterior (n : ) :
                                                      List (Value × )

                                                      BIR posterior = L0 for "around n".

                                                      Equations
                                                      Instances For
                                                        def EgreEtAl2023.birClosedForm (n k : ) :

                                                        Closed form (Section 3.2.2): P(x=k | around n) = (n - |n-k| + 1) / (n+1)²

                                                        Equations
                                                        • EgreEtAl2023.birClosedForm n k = if (if n k then n - k else k - n) > n then 0 else (n - (if n k then n - k else k - n) + 1) / ((n + 1) * (n + 1))
                                                        Instances For
                                                          def EgreEtAl2023.intervalPosterior (a b : ) :
                                                          List (Value × )

                                                          L0 for "between a b" = uniform over [a,b].

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            def EgreEtAl2023.exactPosterior (n : ) :
                                                            List (Value × )

                                                            L0 for "exactly n" = point mass at n.

                                                            Equations
                                                            Instances For
                                                              def EgreEtAl2023.birJoint (n : ) :
                                                              List ((Value × Tolerance) × )
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                def EgreEtAl2023.tolerancePosterior (n : ) :
                                                                List (Tolerance × )

                                                                Tolerance posterior: marginalize BIR joint over values.

                                                                Equations
                                                                Instances For
                                                                  def EgreEtAl2023.wirPosterior (n : ) :
                                                                  List (Value × )

                                                                  WIR: L(x=k | around n) = Σ_i P(x=k | x ∈ [n-i,n+i]) × P(y=i). Tolerance y ranges over {0,...,n} (Section 3.2.2).

                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For

                                                                    Ratio Inequality: posterior concentrates more on center than prior. Under uniform prior, reduces to P(v3|around3) / P(v1|around3) > 1.

                                                                    BIR joint marginalizes to favor large tolerances (more states compatible). With y ∈ {0,...,3}, y3 has 7 compatible values while y0 has 1.

                                                                    Adjacent values have similar BIR probabilities (each step ≥ 50%).

                                                                    Message alternatives for the RSA model.

                                                                    • around3 : Utt
                                                                    • between0_6 : Utt
                                                                    • between1_5 : Utt
                                                                    • between2_4 : Utt
                                                                    • exactly3 : Utt
                                                                    Instances For
                                                                      @[implicit_reducible]
                                                                      Equations
                                                                      def EgreEtAl2023.instReprUtt.repr :
                                                                      UttStd.Format
                                                                      Equations
                                                                      Instances For
                                                                        @[implicit_reducible]
                                                                        instance EgreEtAl2023.instDecidableEqUtt :
                                                                        DecidableEq Utt
                                                                        Equations
                                                                        @[implicit_reducible]
                                                                        Equations

                                                                        Unnormalized BIR weights for "around 3".

                                                                        Proportional to birWeight 3 w: integer counts of valid tolerances y ∈ {0,...,3} satisfying |3 - w| ≤ y. After L0 normalization (÷ 16), gives the triangular BIR posterior [1/16, 2/16, 3/16, 4/16, 3/16, 2/16, 1/16].

                                                                        Equations
                                                                        Instances For
                                                                          noncomputable def EgreEtAl2023.speakerBeliefR (observed w : Value) :

                                                                          Speaker belief peaked at observed value (unnormalized).

                                                                          Weight 2 at center, 1 at ±1, 0 elsewhere. Unnormalized weights preserve S1 ranking because exp is monotone and the normalization constant is independent of u (the inlined klFinite_eq_negEntropy_sub_crossEntropy algebra).

                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For

                                                                            RSA model for imprecision: BIR + KL-divergence speaker.

                                                                            L0 = BIR (Bayesian Interpretation Rule): graded meaning gives the triangular "around" posterior after normalization, matching birWeight.

                                                                            S1 = KL speaker: the speaker with peaked beliefs chooses the message whose L0 posterior best matches those beliefs, measured by expected log-likelihood (= negative KL divergence up to constant entropy, the inlined klFinite_eq_negEntropy_sub_crossEntropy algebra).

                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For

                                                                              Speaker with peaked belief at v3 prefers "around 3" over "between 0 6".

                                                                              "Around 3" produces a triangular L0 posterior peaked at v3, which better matches the speaker's peaked belief via KL divergence. "Between 0 6" produces a flat L0 posterior that wastes probability mass on values far from v3.

                                                                              def EgreEtAl2023.SameSupport {α : Type} (d₁ d₂ : α) :

                                                                              Same support: P(w|o₁) > 0 ↔ P(w|o₂) > 0.

                                                                              Equations
                                                                              Instances For
                                                                                def EgreEtAl2023.RespectsQuality {W I : Type} (m_true : IWBool) (obs : W) (i : I) :

                                                                                Quality: ∀ w, P(w|o) > 0 → ⟦m⟧ⁱ(w) = 1.

                                                                                Equations
                                                                                Instances For
                                                                                  def EgreEtAl2023.RespectsWeakQuality {W I : Type} (m_true : IWBool) (obs : W) :

                                                                                  Weak Quality: ∃ i, Quality(m, o, i).

                                                                                  Equations
                                                                                  Instances For
                                                                                    theorem EgreEtAl2023.quality_preserved_by_same_support {W I : Type} (m_true : IWBool) (d₁ d₂ : W) (i : I) (h_same : SameSupport d₁ d₂) :
                                                                                    RespectsQuality m_true d₁ i RespectsQuality m_true d₂ i

                                                                                    (A-1a) Quality preserved under same support.

                                                                                    theorem EgreEtAl2023.weak_quality_preserved_by_same_support {W I : Type} (m_true : IWBool) (d₁ d₂ : W) (h_same : SameSupport d₁ d₂) :
                                                                                    RespectsWeakQuality m_true d₁ RespectsWeakQuality m_true d₂

                                                                                    (A-1b) Weak Quality preserved under same support.

                                                                                    def EgreEtAl2023.softMaxScore (utilities : List ) (k : ) (alpha : ) :

                                                                                    SoftMax(x_k, x, λ) = exp(λx_k) / Σ_j exp(λx_j).

                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      def EgreEtAl2023.translateUtilities (utils : List ) (a : ) :
                                                                                      List
                                                                                      Equations
                                                                                      Instances For
                                                                                        noncomputable def EgreEtAl2023.utilityDifferenceConstant {W : Type} [BEq W] (support : List W) (d₁ d₂ : W) :

                                                                                        K(o₁,o₂): utility difference constant, independent of m and i (Core Lemma A-6).

                                                                                        In nats; multiply by 1 / Real.log 2 to convert to bits.

                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          noncomputable def EgreEtAl2023.U1 {W M I : Type} (l0 : MIW) (obs : W) (m : M) (i : I) (worlds : List W) :

                                                                                          U¹(m, o, i) = Σ_w P(w|o) · log L⁰(w | m, i) — speaker utility at level 1, in nats. This is the KL-based utility: higher when L⁰ matches the observation.

                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For
                                                                                            theorem EgreEtAl2023.no_quality_implies_S1_zero {W M I : Type} [BEq M] (l0 : MIW) (obs : W) (_messages : List M) (i : I) (worlds : List W) (_alpha : ) (m : M) (h_nq : ∀ (w : W), obs w > 0l0 m i w = 0) :
                                                                                            U1 l0 obs m i worlds = 0
                                                                                            theorem EgreEtAl2023.core_lemma_A6 {W M I : Type} [Fintype W] (f : W) (c : MI) (d₁ d₂ : W) (h_sum : w : W, d₁ w = w : W, d₂ w) (m₁ m₂ : M) (i₁ i₂ : I) :
                                                                                            w : W, d₂ w * (f w + c m₁ i₁) - w : W, d₁ w * (f w + c m₁ i₁) = w : W, d₂ w * (f w + c m₂ i₂) - w : W, d₁ w * (f w + c m₂ i₂)

                                                                                            (A-6) Core Lemma over ℝ: the utility difference U(m,d₂,i) - U(m,d₁,i) is constant across all messages m and interpretations i, provided Σd₁ = Σd₂.

                                                                                            Under Quality, log L⁰(w|m,i) = f(w) + c(m,i) where f(w) = log prior(w) and c(m,i) = −log Z(m,i). Since f doesn't depend on m,i and Σd₁ = Σd₂, the c(m,i) term cancels in the difference, making K independent of m and i.

                                                                                            theorem EgreEtAl2023.same_support_implies_equal_S1 {M : Type} [Fintype M] (u₁ u₂ : M) (α : ) (h_shift : ∃ (K : ), ∀ (m : M), u₂ m = u₁ m + K) :
                                                                                            Core.softmax u₂ α = Core.softmax u₁ α

                                                                                            (A-7) Same support → S¹ equal over ℝ: when utility vectors differ by a constant, softmax is invariant by Core.softmax_add_const.

                                                                                            By A-6, U¹(·, d₂, i) = U¹(·, d₁, i) + K for some constant K. By A-5 (translation invariance), softmax(u + K, α) = softmax(u, α).

                                                                                            theorem EgreEtAl2023.lu_limitation {M : Type} [Fintype M] (u₁ u₂ : M) (α : ) (h_shift : ∃ (K : ), ∀ (m : M), u₂ m = u₁ m + K) :
                                                                                            Core.softmax u₂ α = Core.softmax u₁ α

                                                                                            (A-8) LU Limitation over ℝ: same support → Sⁿ(m|o₁) = Sⁿ(m|o₂) for all n ≥ 1. At level 1, this is a direct corollary of A-7. The paper's full inductive argument (higher recursion depths) follows the same pattern: each Lⁿ is built from Sⁿ⁻¹ which are equal by inductive hypothesis, so Uⁿ differs by a constant, so Sⁿ is equal by softmax translation invariance.

                                                                                            noncomputable def EgreEtAl2023.U_std (l0_scores obs : Value) :

                                                                                            C.1: Standard utility U_std(m,o) = Σ_w P(w|o) · log(Σ_{o'} L(w,o')), in nats. Under standard utility, U_std differs for same-support observations because the marginal Σ_{o'} L(w,o') washes out observation-specific shape.

                                                                                            The if pw > 0 ∧ lw > 0 guard is unneeded: mathlib's Real.log 0 = 0 convention makes pw · Real.log lw = 0 whenever either factor is 0.

                                                                                            Equations
                                                                                            Instances For
                                                                                              noncomputable def EgreEtAl2023.U_bergen (l0_scores obs : Value) :

                                                                                              C.2: Bergen utility U_bergen(m,o) = Σ_w P(w|o) · log L(w|o), in nats. Under Bergen utility, the observation enters both the weight and the listener posterior, so same-support observations yield different utilities (the peaked observation gets higher utility from a peaked L0).

                                                                                              Equations
                                                                                              Instances For

                                                                                                Peaked observation has better utility from triangular L0 than flat does. This is because the peaked observation puts more weight on center values where L0 also has higher probability — better KL alignment.

                                                                                                Algebraic content: with obs_peaked = (1/6, 1/6, 1/3, 1/6, 1/6) and obs_flat = (1/5, 1/5, 1/5, 1/5, 1/5) over (v1, v2, v3, v4, v5), and the triangular L0 (1/8, 3/16, 1/4, 3/16, 1/8),

                                                                                                U_peaked - U_flat = (1/15) · (2·log(1/4) - log(1/8) - log(3/16)) = (1/15) · log((1/4)² / ((1/8)·(3/16))) = (1/15) · log(8/3) > 0.

                                                                                                Both observations get the SAME utility under a uniform L0 (from "between"). This demonstrates the LU limitation: uniform L0 cannot distinguish shapes.

                                                                                                Equations
                                                                                                Instances For

                                                                                                  Under a uniform L0 over the shared support {v1..v5}, both observations yield the same utility Real.log (1/5). This works because: (a) On the support, Real.log lw = Real.log (1/5) is constant. (b) Off the support, Real.log 0 = 0 (mathlib convention) zeros the term. (c) Both obs_peaked and obs_flat sum to 1 over {v1..v5}.

                                                                                                  theorem EgreEtAl2023.bir_from_compositional_meaning (v : Value) :
                                                                                                  birWeight 3 v = (List.filter (fun (y : Tolerance) => aroundMeaning 3 y v) (List.filter (fun (y : Tolerance) => decide (y.toNat 3)) allTolerances)).length / 4

                                                                                                  BIR weight = marginalization of aroundMeaning over valid tolerances y ≤ n.

                                                                                                  BIR posterior matches closed-form for each value (n=3).

                                                                                                  Closed form matches Phenomena datum for center: P(x=20 | around 20) = 21/441.

                                                                                                  Closed form matches Phenomena datum for offset: P(x=15 | around 20) = 16/441.