An individual is a non-empty set of atoms. Atoms are singletons {a},
pluralities are larger sets. The part-of relation (⊆) and join (∪)
are inherited from Mathlib's Set instances, giving us Link's
complete atomic join semilattice.
Equations
- Semantics.Kinds.NMP.Individual Atom = Set Atom
Instances For
Construct a singular individual from an atom.
Equations
Instances For
A property (intension): function from worlds to sets of individuals.
Equations
- Semantics.Kinds.NMP.Property World Atom = (World → Set (Semantics.Kinds.NMP.Individual Atom))
Instances For
An individual concept: function from worlds to individuals.
Equations
- Semantics.Kinds.NMP.IndividualConcept World Atom = (World → Semantics.Kinds.NMP.Individual Atom)
Instances For
Kinds are a special subset of individual concepts.
A kind is an individual concept that maps each world to the totality of instances (a set of atoms) and represents a "natural" class with regular behavior.
Not every individual concept is a kind. Only those corresponding to natural properties qualify.
- concept : IndividualConcept World Atom
The underlying individual concept
Instances For
The "down" operator ∩ (cap): nominalize a property to a kind.
∩P = λs. ιPₛ
That is, at each world s, take the largest individual in the extension of P. For plural/mass properties, this is the fusion of all instances.
Note: ∩ is only semantically defined for plural/mass nouns (see
downDefinedFor). This function computes the nominalization for any
property; the partiality constraint is enforced externally.
Equations
- Semantics.Kinds.NMP.down World Atom P = { concept := fun (w : World) => {a : Atom | Semantics.Kinds.NMP.Individual.atom a ∈ P w} }
Instances For
The "up" operator ∪ (cup): predicativize a kind to a property.
∪k = λx[x ⊆ kₛ]
The extension is the ideal generated by the kind's instances: all individuals that are "part of" the totality of instances.
Property: ∪ applied to a kind yields a MASS denotation. This is because the extension includes both atoms and pluralities.
Equations
- Semantics.Kinds.NMP.up World Atom k w = {x : Semantics.Kinds.NMP.Individual Atom | x ⊆ k.concept w}
Instances For
A property is mass iff its extension at every world is determined by
atomic content: x ∈ P w ↔ ∀ a ∈ x, {a} ∈ P w ([chierchia-1998] §2.2).
This implies both cumulative reference (CUM) and divisive reference (DIV): mass extensions are closed under union and subset.
Equations
- Semantics.Kinds.NMP.IsMass World Atom P = ∀ (w : World) (x : Semantics.Kinds.NMP.Individual Atom), x ∈ P w ↔ ∀ a ∈ x, Semantics.Kinds.NMP.Individual.atom a ∈ P w
Instances For
Mass properties have divisive reference: if x ∈ P w and y ⊆ x,
then y ∈ P w. Every part of a mass-noun instance is also an instance.
Mass properties have cumulative reference: if x ∈ P w and y ∈ P w,
then x ∪ y ∈ P w. Combining mass-noun instances yields an instance.
Plural closure of a property: close extensions under join (⊔) at each world.
This is [Lin83]'s *P operator, Krifka's ⊔ superscript: the smallest
superset of P(w) closed under set union. Singular count nouns like spider
are not cumulative, so pluralClosure(⟦spider⟧) adds pluralities — the
denotation of the bare plural spiders.
Mass nouns like mold are already cumulative, so plural closure is a
no-op: pluralClosure(⟦mold⟧) = ⟦mold⟧ (see pluralClosure_mass).
Equations
- Semantics.Kinds.NMP.pluralClosure World Atom P w = Mereology.AlgClosure (P w)
Instances For
Plural closure is idempotent for mass nouns: ⊔P = P when P is cumulative, whence the absorption rule ⊔⊔S = ⊔S ([krifka-2026]).
A property is contained in its plural closure.
Plural closure is always cumulative.
Key theorem: ∪(∩P) = P for mass properties.
Going down and then up returns the original property (for suitable P).
The mass-noun condition IsMass ensures that the extension at each world
is determined by its atomic content, which is exactly what down extracts
and up reconstructs.
Derived Kind Predication: coerce object-level predicates to accept kinds.
When an object-level predicate P applies to a kind k, introduce existential quantification over instances:
P(k) = ∃x[∪k(x) ∧ P(x)]
This is a type-coercion triggered by sort mismatch.
Example: "Lions are roaring in the zoo"
- "lions" denotes a kind
- "roaring in the zoo" is an object-level predicate
- DKP yields: ∃x[lion(x) ∧ roaring-in-the-zoo(x)]
Equations
- Semantics.Kinds.NMP.DKP World Atom P k w = ∃ x ∈ Semantics.Kinds.NMP.up World Atom k w, P x = true
Instances For
DKP as a type-shifting operation on predicates.
Takes an object-level predicate and returns a kind-level predicate.
Equations
- Semantics.Kinds.NMP.liftToKind World Atom P k w = Semantics.Kinds.NMP.DKP World Atom P k w
Instances For
Derived Property Predication: coerce a property to yield an existential.
When a property P (rather than a kind) composes with a predicate Q, introduce low-scoped existential quantification:
DPP(Q)(P) = ∃x[P(x) ∧ Q(x)]
This is the mirror image of DKP. Where DKP applies to kinds (via ∪), DPP applies to properties directly. [moroney-2021] (85): DPP applies when bare nouns (base type ⟨s,⟨e,t⟩⟩) compose with a verb at vP, yielding obligatory low scope w.r.t. negation. [guerrini-2026] §5.3: the existential reading of bare plurals in episodic sentences arises from property-level LFs via DPP, not from kind-level DKP.
Example: "Bears are destroying my garden" (existential reading)
- "bears" denotes a property (λx.bear(x))
- "destroying my garden" is a predicate
- DPP yields: ∃x[bear(x) ∧ destroying-my-garden(x)]
DPP applies locally (like DKP), so it yields obligatory low scope.
Equations
- Semantics.Kinds.NMP.DPP Atom property predicate = ∃ (x : Semantics.Kinds.NMP.Individual Atom), property x = true ∧ predicate x = true
Instances For
The Nominal Mapping Parameter.
Languages vary in what they let their NPs denote:
- [+arg]: NPs can be argumental (type e, denoting kinds)
- [+pred]: NPs can be predicative (type ⟨e,t⟩)
The combination determines the language's nominal system.
- argOnly : NominalMapping
[+arg, -pred]: All nouns are kinds (Chinese-like)
- All nouns are mass-like
- No plural morphology
- Generalized classifier system
- Bare arguments everywhere
- argAndPred : NominalMapping
[+arg, +pred]: Nouns can be kinds or predicates (Germanic-like)
- Mass/count distinction
- Bare plurals and mass nouns as arguments
- Singular count nouns require D
- predOnly : NominalMapping
[-arg, +pred]: All nouns are predicates (Romance-like)
- Mass/count distinction
- Bare arguments restricted (need licensing)
- D must be projected for argumenthood
Instances For
Equations
- Semantics.Kinds.NMP.instDecidableEqNominalMapping 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
Language family classification
Equations
- Semantics.Kinds.NMP.languageFamily Semantics.Kinds.NMP.NominalMapping.argOnly = "Chinese, Japanese (classifier languages)"
- Semantics.Kinds.NMP.languageFamily Semantics.Kinds.NMP.NominalMapping.argAndPred = "English, German, Slavic (bare argument languages)"
- Semantics.Kinds.NMP.languageFamily Semantics.Kinds.NMP.NominalMapping.predOnly = "French, Italian, Spanish (Romance languages)"
Instances For
Whether a nominal can denote a kind, given the language's mapping parameter and whether an overt determiner (D) is present.
- [+arg] languages: nouns can denote kinds without D (covert ∩ available)
- [-arg, +pred] languages: D is required to map predicates to arguments; without D, nouns remain predicates (properties)
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Whether a nominal can denote a property, given the mapping parameter.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Denotation type for bare nominal expressions: kind (type e individual
concept) vs property (type ⟨e,t⟩). The two values name the targets of
CanDenoteKind and CanDenoteProperty.
- kind : NominalDenotation
- property : NominalDenotation
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.Kinds.NMP.instDecidableEqNominalDenotation x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Pluralization / mass extension: the set of non-empty sub-individuals.
For count nouns, PL(F) = { s | s.Nonempty ∧ s ⊆ F } — the set of
pluralities whose atomic parts are all in the original extension.
Mass nouns come out of the lexicon "already pluralized": a mass noun like
"furniture" is true of individual pieces AND pluralities of pieces, without
distinction. Its extension has the same form: { s | s.Nonempty ∧ s ⊆ atoms }.
Equations
- Semantics.Kinds.NMP.pluralize F = {s : Semantics.Kinds.NMP.Individual Atom | Set.Nonempty s ∧ s ⊆ F}
Instances For
The Blocking Principle: covert type shifting is blocked when an overt determiner has the same meaning.
For any type shifting operation τ and any X: *τ(X) if there is a determiner D such that D(X) = τ(X)
In English:
- ι (iota) is blocked by "the" → can't use ι covertly
- ∃ is blocked by "a/some" for singulars → can't use ∃ covertly for singulars
- ∩ is NOT blocked → can use ∩ freely for bare plurals/mass
This explains why English allows bare plurals but not bare singulars.
- determiners : List String
Available overt determiners
- iotaBlocked : Bool
Whether ι (definite) is blocked
- existsBlocked : Bool
Whether ∃ (indefinite singular) is blocked
- downBlocked : Bool
Whether ∩ (kind formation) is blocked
Instances For
Bare argument is licensed iff the required type shift is not blocked
Equations
Instances For
The key insight: ∩ is undefined for singular count nouns.
∩ applied to a singular property would need to yield a kind. But kinds necessarily have plurality of instances (across worlds). A property that is necessarily instantiated by just one individual does not qualify as a kind.
Therefore:
- ∩(dogs) = the dog-kind ✓
- ∩(dog) = undefined ✗
This, combined with blocking of ι and ∃ by articles, explains why bare singular count nouns cannot occur as arguments in English.
Equations
- Semantics.Kinds.NMP.downDefinedFor MassCount.mass isPlural = true
- Semantics.Kinds.NMP.downDefinedFor MassCount.count isPlural = isPlural
Instances For
Why bare plurals are OK but bare singulars are not (in languages with articles).
Given a language where:
- ι is blocked (has "the")
- ∃ is blocked for singulars (has "a")
- ∩ is not blocked
Then:
- Bare plurals OK: ∩ is defined and not blocked
- Bare singulars OUT: ∩ is undefined, and ι/∃ are blocked
Language-specific configurations live in Fragments/{Language}/Nouns.lean.
Bare plurals are scopeless because DKP introduces a local existential: the
existential closure sits inside negation and cannot scope out. This locality is the
theorem chierchia_position_invariant below — Chierchia's derivation is the same
whether or not the bare plural has scrambled. See
Data/Examples/LeBruynDeSwart2022.json for empirical scope data.
When ∩ is undefined (NP doesn't denote a kind), we fall back to ∃.
For non-kind-denoting NPs like "parts of that machine":
- ∩ is undefined (no corresponding natural kind)
- ∃ is available (not blocked for plurals)
- Result: these NPs behave like regular existential GQs
Equations
- Semantics.Kinds.NMP.fallbackToExists isKindDenoting bp = decide ((!isKindDenoting) = true ∧ (!bp.existsBlocked) = true)
Instances For
DKP scope derivation (Chierchia side of the scrambling comparison) #
[krifka-2003] [chierchia-1998]
Chierchia's Derived Kind Predication introduces the existential locally — where the
kind meets the predicate — so negation always scopes outside it. Modelled with plain
Prop existential closure (existsClose) over the kind's instances. The position-sensitive
∃-shift that Studies/LeBruynDeSwart2022.lean reads into [krifka-2003] reuses the same
existsClose, so the two accounts share one closure and differ only in where negation
sits; they are compared there on the Dutch scrambling data.
existsClose is Partee's A (existential closure) in plain extensional form. The same
operator dressed in the DWP/Gallin deep embedding is Quantification.A, needed there
for type-shift metatheory but not for this scope contrast.
Existential closure of a property P against a predicate Q over a finite domain:
∃ x ∈ dom, P x ∧ Q x. Partee's A type shift in plain extensional form; reducible
so concrete instances are Decidable.
Equations
- Semantics.Kinds.NMP.existsClose dom P Q = ∃ x ∈ dom, P x ∧ Q x
Instances For
Chierchia's DKP, unscrambled [niet [BP V]]: ¬ ∃ x ∈ kind, P x ∧ Q x. The
existential is introduced locally, so negation scopes outside it (narrow scope).
Equations
- Semantics.Kinds.NMP.chierchiaDerivUnscrambled kind P Q = ¬Semantics.Kinds.NMP.existsClose kind P Q
Instances For
Chierchia's DKP, scrambled [BP [niet V]]: identical to the unscrambled derivation.
DKP locality means surface position cannot move the existential.
Equations
- Semantics.Kinds.NMP.chierchiaDerivScrambled kind P Q = ¬Semantics.Kinds.NMP.existsClose kind P Q
Instances For
DKP is local: the scrambled and unscrambled derivations coincide, so Chierchia
predicts obligatory narrow scope regardless of surface position. This is the content the
former dkpIsLocal : Bool := true stipulated — now a theorem about the derivations.
Related Theory #
Studies/Krifka2003.lean- Alternative: Bare NPs as propertiesSemantics/Lexical/Noun/Kind/MeaningPreservation.lean- Meaning Preservation, singular kindsSemantics/Genericity/Basic.lean- GEN operator for generic readings
Empirical Data #
For empirical patterns (scope judgments, predicate class effects), see
Data/Examples/LeBruynDeSwart2022.json and
Data/Examples/CohenErteschikShir2002.json.
For kind formation by salient equivalence relations (the Mendia 2020
framework that subsumes Carlson's Disjointness Condition), see
Semantics/Genericity/Subkinds.lean.