Interpretation of Nominal Descriptions #
@cite{coppock-beaver-2015} @cite{hanink-2021} @cite{schwarz-2009} @cite{patel-grosz-grosz-2017} @cite{sharvy-1980}
Maps NominalKind F to a referent in Option F.Entity, relative to a
(entity, situation) bi-assignment. none represents either presupposition
failure (no unique satisfier; no satisfying antecedent at the discourse
index) or inapplicability (indefinites do not denote a single entity at
this layer — they need separate existential-closure machinery).
The interpretation composes the operators in Core/Nominal/Maximality.lean:
bareandunique↦russellIota(order-free uniqueness; languages with mereological structure can opt intosharvyMaxinstead by providing a[PartialOrder F.Entity]instance and using a separate plural-aware interpreter)anaphoricanddemonstrative↦ entity-assignment lookup, accepted iff the restrictor holds of the indexed entitypossessive↦russellIotaof the restrictor conjoined with the possession relation applied to the possessor
A handful of agreement theorems wire the constructors together: bare and unique collapse on a shared restrictor (the default Core reading is weak/ uniqueness); demonstrative and anaphoric agree when they share restrictor and discourse index (the deictic feature is for presupposition checking, not referent selection).
Denotation of a NominalKind at a bi-assignment, as Option F.Entity.
none is presupposition failure or inapplicability.
Equations
- Core.Nominal.interpret (Core.Nominal.NominalKind.bare R) g gs = Core.Nominal.russellIota fun (x : F.Denot Core.Logic.Intensional.Ty.e) => R g gs x
- Core.Nominal.interpret (Core.Nominal.NominalKind.indefinite restrictor) g gs = none
- Core.Nominal.interpret (Core.Nominal.NominalKind.unique R situationIdx) g gs = Core.Nominal.russellIota fun (x : F.Denot Core.Logic.Intensional.Ty.e) => R g gs x
- Core.Nominal.interpret (Core.Nominal.NominalKind.anaphoric R d) g gs = if R g gs (g d) then some (g d) else none
- Core.Nominal.interpret (Core.Nominal.NominalKind.demonstrative R deictic situationIdx d) g gs = if R g gs (g d) then some (g d) else none
- Core.Nominal.interpret (Core.Nominal.NominalKind.possessive R possessor rel) g gs = Core.Nominal.russellIota fun (x : F.Denot Core.Logic.Intensional.Ty.e) => R g gs x ∧ rel g gs (possessor g gs) x
Instances For
Bare nouns and weak/uniqueness definites agree on referent selection when they share a restrictor — the default Core reading is uniqueness. Languages whose bare nouns shift to ∃ or kind readings override this via fragment-specific interpreters.
The deictic feature on a demonstrative does not affect referent selection: demonstratives and anaphoric definites pick the same entity when they share restrictor and discourse index. The deictic content is a presupposition filter, not a selector.
The situation index on a unique description does not affect the
interpretation as written: the restrictor R already takes the full
situation assignment, so the index records which pronoun is bound
but does not change what is computed by the operator.
Whatever entity the interpretation returns, the restrictor holds of it.
Stated for .unique (the operator-driven case); the analogue for
.bare follows by interpret_bare_eq_unique.
Witness-extraction shortcut: when an entity satisfies the restrictor and
is the unique satisfier, .unique returns it. Closes the standard
Russellian-iota extraction in one line — without it, every concrete
interpret_* instance needs the six-step ritual of
interpret_unique → russellIota_isSome_iff_existsUnique → Option.isSome_iff_exists →
russellIota_witness_satisfies → case analysis.
Specialization of interpret_unique_eq_some_of_existsUnique to a packaged
existsUnique hypothesis, with the witness extracted. The first projection
of existsUnique gives the entity; the second proves uniqueness.
An anaphoric definite that returns a witness must return the indexed entity — it never picks anything else.
An anaphoric definite returns a witness iff the restrictor holds of the indexed entity.