Documentation

Linglib.Theories.Semantics.Numerals.Basic

Unified Numeral Semantics #

@cite{blok-2015} @cite{chierchia-fox-spector-2012} @cite{fox-2007} @cite{goodman-stuhlmuller-2013} @cite{horn-1972} @cite{kennedy-2015} @cite{hackl-2000} @cite{link-1983} @cite{partee-1987} @cite{spector-2013}

The numeral surface forms ("three", "more than three", "at least three", "at most three", "fewer than three") are five Nat-instantiations of @cite{kennedy-2015}'s unified de-Fregean GQ λP. max{d | #P ≥ d} REL m, captured in Core.Scale.relationalGQ. Each named meaning is the corresponding Core.Scale.{...}Deg id specialization, and so inherits the scale infrastructure (maximal informativity, monotonicity, density) by construction.

The only theory disagreement is the bare-numeral semantics:

TheoryBare "three"bare semantics
Lower-bound≥3atLeastMeaning
Exact=3bareMeaning

Modified numerals are theory-independent — everyone agrees "more than 3" means > 3. The Class A / Class B distinction (@cite{geurts-nouwen-2007}, @cite{nouwen-2010}) reduces to reflexivity vs irreflexivity of the modifier's underlying relation; see Core.Scale.relationalGQ_refl_at_boundary and Core.Scale.relationalGQ_irrefl_at_boundary.

Sections #

  1. Modifier classification (Class A/B, Bound direction)
  2. Numeral meaning functions (5 defs over Core.Scale.{...}Deg id)
  3. BareNumeral and NumeralExpr
  4. Alternative sets (Kennedy §4.1)
  5. Class A/B corollaries, anti-Horn-scale corollaries
  6. Type-shifting (Kennedy §3.1)
  7. EXH–type-shift duality (Spector §6.2)
  8. GQT bridge (Bylinina & Nouwen)

The HasDegree-based numeral predicates and CardinalityDegree instance live in Numerals/Degree.lean; precision/halo machinery lives in Numerals/Precision.lean.

Class A (strict) vs Class B (non-strict) modified numerals.

The distinction predicts ignorance implicature patterns:

  • Class A (>, <): EXCLUDE the bare-numeral world → no ignorance
  • Class B (≥, ≤): INCLUDE the bare-numeral world → ignorance

Structurally: Class B iff the underlying relation is reflexive (Std.Refl), Class A iff irreflexive (Std.Irrefl); see Core.Scale.relationalGQ_refl_at_boundary.

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

      Upper vs lower bound direction.

      • .upper: constrains from above (at most, fewer than)
      • .lower: constrains from below (at least, more than)
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[implicit_reducible]
          Equations

          Five named meanings — one per surface form. Each is the id-instantiation of the corresponding Core.Scale degree property. They capture @cite{kennedy-2015}'s

          ⟦modifier m⟧ = λP. max{d | #P ≥ d} REL m

          where n plays the role of max{d | #P ≥ d} and m is the numeral. bareMeaning is the exact (Kennedy) reading; the lower-bound (Horn) reading of bare numerals is atLeastMeaning. Grounding in Core.Scale makes the density predictions (atLeastDeg_downMono, moreThan_noMaxInf, atLeast_hasMaxInf, etc.) hold by construction.

          Bare numeral meaning (exact reading): n = m.

          Equations
          Instances For

            "More than m": n > m.

            Equations
            Instances For

              "Fewer than m": n < m.

              Equations
              Instances For

                "At least m": n ≥ m.

                Equations
                Instances For

                  "At most m": n ≤ m.

                  Equations
                  Instances For
                    @[simp]
                    theorem Semantics.Numerals.bareMeaning_def (m n : ) :
                    bareMeaning m n n = m
                    @[simp]
                    theorem Semantics.Numerals.moreThanMeaning_def (m n : ) :
                    moreThanMeaning m n n > m
                    @[simp]
                    @[simp]
                    theorem Semantics.Numerals.atLeastMeaning_def (m n : ) :
                    atLeastMeaning m n n m
                    @[simp]
                    theorem Semantics.Numerals.atMostMeaning_def (m n : ) :
                    atMostMeaning m n n m

                    Bare numeral utterances (one through five).

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

                        A numeral expression: a bare numeral or one of the four modifications. Used both as a surface form and (via kennedyAlternatives) as an element of Kennedy's single alternative set.

                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Semantics.Numerals.instDecidableEqNumeralExpr.decEq (x✝ x✝¹ : NumeralExpr) :
                            Decidable (x✝ = x✝¹)
                            Equations
                            Instances For
                              @[implicit_reducible]
                              instance Semantics.Numerals.instDecidableMeaning (bare : Prop) [(m n : ) → Decidable (bare m n)] (e : NumeralExpr) (n : ) :
                              Decidable (NumeralExpr.meaning bare e n)
                              Equations
                              • One or more equations did not get rendered due to their size.

                              @cite{kennedy-2015}'s single alternative set for numeral n — bare plus all four surface modifications. The point is anti-Horn-scale: there is no fixed scale direction. The Class A / Class B split is read off asymmetric entailment (cf. classA_excludes_bare_world, classB_includes_bare_world), not from membership in a pre-split sublist.

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

                                Class A/B is the central typological generalization (@cite{geurts-nouwen-2007}, @cite{nouwen-2010}): strict modifiers (>, <) exclude the bare-numeral world; non-strict modifiers (, ) include it. The classification is derived from NumeralExpr.modifierClass; the inclusion/exclusion theorems below apply the corresponding general lemmas Core.Scale.relationalGQ_irrefl_at_boundary and Core.Scale.relationalGQ_refl_at_boundary, instantiated at μ = id.

                                Class A excludes the bare-numeral world (universal). For every e : NumeralExpr whose modifier class is A, the meaning fails at n = e.argument, regardless of which bare-numeral semantics is chosen.

                                Each non-vacuous branch delegates to Core.Scale.relationalGQ_irrefl_at_boundary at μ = id.

                                Class B includes the bare-numeral world (universal). For every e : NumeralExpr whose modifier class is B, the meaning holds at n = e.argument, regardless of which bare-numeral semantics is chosen.

                                Each non-vacuous branch delegates to Core.Scale.relationalGQ_refl_at_boundary at μ = id.

                                Bare numeral pointwise entails "at least m" — the id-specialization of Core.Scale.eqDeg_imp_atLeastDeg.

                                theorem Semantics.Numerals.bare_not_upward_monotone :
                                ¬∀ (m m' n : ), m m'bareMeaning m nbareMeaning m' n

                                Exact bare numerals are not upward-monotone: the id-specialization of Core.Scale.eqDeg_not_upward_monotone (witness d = 3, d' = 4).

                                theorem Semantics.Numerals.bare_not_downward_monotone :
                                ¬∀ (m m' n : ), m' mbareMeaning m nbareMeaning m' n

                                Bare numerals are not downward-monotone either, so they fail the Horn-scale criterion in both directions. The id-specialization of Core.Scale.eqDeg_not_downward_monotone.

                                "At least m" is strictly weaker than "bare m" — the id-specialization of Core.Scale.atLeastDeg_strictly_weaker_than_eqDeg (witness d' = m+1).

                                "More than m" and "bare m" have disjoint denotations — the id-specialization of Core.Scale.moreThanDeg_disjoint_eqDeg.

                                De-Fregean type-shifting: exact → lower-bound #

                                The general operation Core.Scale.typeLower (∃ d' ≥ d, exact d' w) and its collapse typeLower_eqDeg_iff : typeLower (eqDeg μ) d w ↔ atLeastDeg μ d w live in Core/Scales/Scale.lean. Numerals are the id-instantiation: typeLower bareMeaning m n ↔ atLeastMeaning m n follows by definitional unfolding (bareMeaning ≡ eqDeg id, atLeastMeaning ≡ atLeastDeg id).

                                The general theorem Core.Scale.distinct_no_universal_witness rules out the alternative universal-closure reading of Partee's iota.

                                EXH and type-shifting are inverses #

                                @cite{spector-2013} (§6.2) presents an approach (from @cite{chierchia-fox-spector-2012}) where the exact reading of bare numerals arises from a covert exhaustivity operator: EXH(≥n) = ≥n ∧ ¬(≥n+1) = (=n). @cite{kennedy-2015} proposes the reverse: the lower-bound reading arises from type-shifting the exact meaning: typeShift(=n) = (≥n).

                                Both directions are general theorems on ℕ — the duality is not a spot-check, it follows from the linear order. For RSA the pair {exact, lower-bound} is what matters; type-shifting is preferable to EXH because it is independently motivated (Partee's universal), parameter-free, and grammatically always available (no insertion-site stipulation). The two halves of the duality are exhNumeral_iff_bare (EXH(≥n) = (=n)) and typeLower_bareMeaning_iff (typeShift(=n) = (≥n)).

                                Scalar exhaustification for numerals: "at least m AND NOT at least m+1" — i.e., "exactly m".

                                Equations
                                Instances For

                                  EXH(lower-bound) = exact (general). Exhaustifying the lower-bound meaning produces the exact meaning at every world.

                                  The GQT numeral quantifiers in Quantifier.lean (exactly_n_sem, at_least_n_sem, at_most_n_sem) compute the same truth values as the named numeral meanings applied to the intersection cardinality. This connects B&N's quantifier view (type ⟨⟨e,t⟩,⟨e,t⟩,t⟩) to the Kennedy maximality view (type ⟨d,t⟩).

                                  GQT "at least n" agrees with atLeastMeaning on intersection cardinality.

                                  GQT "at most n" agrees with atMostMeaning on intersection cardinality.

                                  GQT "exactly n" agrees with bareMeaning on intersection cardinality.