Horn scale: list of expressions ordered by semantic strength.
- members : List α
Members ordered from weakest to strongest.
Instances For
Equations
- Core.Scale.instReprHornScale = { reprPrec := Core.Scale.instReprHornScale.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Core.Scale.scalePosition s x = List.findIdx? (fun (x_1 : α) => x_1 == x) s.members
Instances For
Equations
- Core.Scale.isWeaker s x y = match Core.Scale.scalePosition s x, Core.Scale.scalePosition s y with | some px, some py => decide (px < py) | x, x_1 => false
Instances For
Equations
- Core.Scale.isStronger s x y = Core.Scale.isWeaker s y x
Instances For
Equations
- Core.Scale.weakerAlternatives s x = match Core.Scale.scalePosition s x with | some px => List.take px s.members | none => []
Instances For
Equations
- Core.Scale.Quantifiers.instBEqQuantExpr.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Core.Scale.Quantifiers.QuantExpr.ofString? "none" = some Core.Scale.Quantifiers.QuantExpr.none_
- Core.Scale.Quantifiers.QuantExpr.ofString? "some" = some Core.Scale.Quantifiers.QuantExpr.some_
- Core.Scale.Quantifiers.QuantExpr.ofString? "most" = some Core.Scale.Quantifiers.QuantExpr.most
- Core.Scale.Quantifiers.QuantExpr.ofString? "all" = some Core.Scale.Quantifiers.QuantExpr.all
- Core.Scale.Quantifiers.QuantExpr.ofString? "every" = some Core.Scale.Quantifiers.QuantExpr.all
- Core.Scale.Quantifiers.QuantExpr.ofString? x✝ = none
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.all Core.Scale.Quantifiers.QuantExpr.some_ = true
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.all Core.Scale.Quantifiers.QuantExpr.most = true
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.all Core.Scale.Quantifiers.QuantExpr.all = true
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.most Core.Scale.Quantifiers.QuantExpr.some_ = true
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.most Core.Scale.Quantifiers.QuantExpr.most = true
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.some_ Core.Scale.Quantifiers.QuantExpr.some_ = true
- Core.Scale.Quantifiers.entails Core.Scale.Quantifiers.QuantExpr.none_ Core.Scale.Quantifiers.QuantExpr.none_ = true
- Core.Scale.Quantifiers.entails x✝¹ x✝ = false
Instances For
Equations
- Core.Scale.Quantifiers.instBEqQuantWorld.beq { count := a } { count := b } = (a == b)
- Core.Scale.Quantifiers.instBEqQuantWorld.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Intensional meaning: quantifier as function from worlds to truth values.
Equations
- Core.Scale.Quantifiers.worldMeaning maxN Core.Scale.Quantifiers.QuantExpr.none_ x✝ = (↑x✝.count == 0)
- Core.Scale.Quantifiers.worldMeaning maxN Core.Scale.Quantifiers.QuantExpr.some_ x✝ = decide (↑x✝.count ≥ 1)
- Core.Scale.Quantifiers.worldMeaning maxN Core.Scale.Quantifiers.QuantExpr.most x✝ = decide (↑x✝.count > maxN / 2)
- Core.Scale.Quantifiers.worldMeaning maxN Core.Scale.Quantifiers.QuantExpr.all x✝ = (↑x✝.count == maxN)
Instances For
Equations
- Core.Scale.Quantifiers.allWorlds maxN = List.filterMap (fun (n : ℕ) => if h : n < maxN + 1 then some { count := ⟨n, h⟩ } else none) (List.range (maxN + 1))
Instances For
Equations
- Core.Scale.Quantifiers.w0 = { count := ⟨0, Core.Scale.Quantifiers.w0._proof_2⟩ }
Instances For
Equations
- Core.Scale.Quantifiers.w1 = { count := ⟨1, Core.Scale.Quantifiers.w1._proof_2⟩ }
Instances For
Equations
- Core.Scale.Quantifiers.w2 = { count := ⟨2, Core.Scale.Quantifiers.w2._proof_2⟩ }
Instances For
Equations
- Core.Scale.Quantifiers.w3 = { count := ⟨3, Core.Scale.Quantifiers.w3._proof_2⟩ }
Instances For
Equations
- Core.Scale.Connectives.instBEqConnExpr.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Core.Scale.Connectives.entails Core.Scale.Connectives.ConnExpr.and_ Core.Scale.Connectives.ConnExpr.or_ = true
- Core.Scale.Connectives.entails Core.Scale.Connectives.ConnExpr.and_ Core.Scale.Connectives.ConnExpr.and_ = true
- Core.Scale.Connectives.entails Core.Scale.Connectives.ConnExpr.or_ Core.Scale.Connectives.ConnExpr.or_ = true
- Core.Scale.Connectives.entails x✝¹ x✝ = false
Instances For
Instances For
Equations
Equations
- Core.Scale.Modals.instBEqModalExpr.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Core.Scale.Modals.ModalExpr.ofString? "possible" = some Core.Scale.Modals.ModalExpr.possible
- Core.Scale.Modals.ModalExpr.ofString? "might" = some Core.Scale.Modals.ModalExpr.possible
- Core.Scale.Modals.ModalExpr.ofString? "may" = some Core.Scale.Modals.ModalExpr.possible
- Core.Scale.Modals.ModalExpr.ofString? "necessary" = some Core.Scale.Modals.ModalExpr.necessary
- Core.Scale.Modals.ModalExpr.ofString? "must" = some Core.Scale.Modals.ModalExpr.necessary
- Core.Scale.Modals.ModalExpr.ofString? x✝ = none
Instances For
Equations
- Core.Scale.Modals.ModalExpr.possible.toString = "possible"
- Core.Scale.Modals.ModalExpr.necessary.toString = "necessary"
Instances For
Equations
Equations
Instances For
Equations
- Core.Scale.Modals.entails Core.Scale.Modals.ModalExpr.necessary Core.Scale.Modals.ModalExpr.possible = true
- Core.Scale.Modals.entails Core.Scale.Modals.ModalExpr.necessary Core.Scale.Modals.ModalExpr.necessary = true
- Core.Scale.Modals.entails Core.Scale.Modals.ModalExpr.possible Core.Scale.Modals.ModalExpr.possible = true
- Core.Scale.Modals.entails x✝¹ x✝ = false
Instances For
Numerals and Horn Scales #
@cite{horn-1972} @cite{kennedy-2015}
Numerals are NOT represented as a HornScale here because:
Under lower-bound semantics, numerals do form a scale (⟨1, 2, 3,...⟩), but it is infinite — a finite
HornScalelist can't represent it correctly ("five" would have no stronger alternatives).Under bilateral semantics, numerals are non-monotonic and do NOT form a Horn scale at all. The relevant alternatives are {bare n, Class A n, Class B n}, not other numerals.
Both cases are handled properly in
Theories/Semantics.Montague/Determiner/Numeral/Semantics.lean:
NumeralTheory.isStrongerThancomputes strength for any theoryNumeralAlternativerepresents Kennedy's alternative setslowerBound_monotonic/bilateral_not_monotonicprove the key contrast
Singular/Plural as a Horn Scale #
@cite{sauerland-2003} @cite{spector-2007} @cite{tieu-etal-2020}
The singular and plural morphemes form a Horn scale ⟨singular, plural⟩ where singular ("a giraffe") is the stronger alternative to plural ("giraffes").
Under the implicature approach to multiplicity inferences, the plural literally means "one or more" and the "more than one" inference arises as a scalar implicature: the listener reasons that the speaker chose the weaker "giraffes" over the stronger "a giraffe," implying that the singular alternative is false — hence more than one.
This scale is structurally unusual: the alternatives differ in morphology (number marking), not in lexical choice (unlike some/all, or/and).
- singular : NumberExpr
- plural : NumberExpr
Instances For
Equations
- Core.Scale.Number.instBEqNumberExpr.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Core.Scale.Number.NumberExpr.singular.toString = "singular"
- Core.Scale.Number.NumberExpr.plural.toString = "plural"
Instances For
Equations
Singular is stronger: "a giraffe" entails "giraffes" (one or more).
Equations
Instances For
Equations
Instances For
- upward : Monotonicity
- downward : Monotonicity
Instances For
Equations
- Core.Scale.instBEqMonotonicity.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Instances For
Sentence polarity determines monotonicity context: positive sentences are upward-entailing, negative are downward-entailing. This is the Ladusaw (1979) / Fauconnier (1975) connection.