Partial interpretation #
This file is Heim and Kratzer's composition engine on partial denotations. A function
denotes a partial function, mathlib's PFun, whose domain is the definedness condition the
book attaches to a lexical entry, and a node denotes a Part value of its type, defined when
its daughters are and the function among them is defined at its argument. The engine evaluates
the term a tree translates to (Tree.translate), so it composes by the same modes as the total
engine (Mode.evalPartial); a trace denotes the value of its index and a binder abstracts over
its index, the abstract being a partial function that is undefined wherever the body is.
Predicate Abstraction therefore needs no distributor.
The book's distinction between uninterpretability and presupposition failure (§4.4.4) is the
difference between the engine returning no denotation and returning an undefined one:
Uninterpretable is decided by the types of the leaves alone (uninterpretable_congr), and
PresupFailure asks after the denotations. The definite article is the book's Fregean entry
(the), defined on the predicates true of exactly one individual.
Main declarations #
Ty.PDomainandPDenotationare the partial domains and denotations.Mode.evalPartialandTerm.evalPartialare the partial denotations of a mode and of a term, andPartial.interpthe engine, evaluating a tree's term.Partial.UninterpretableandPartial.PresupFailureare the two ways of lacking a value, andPartial.interp_map_fst_congrshows the first depends on the leaves' types alone.Partial.theis the definite article, withPartial.the_domits definedness condition.Ty.LiftsandDenotation.Liftsrelate a total denotation to a partial one lifting it, andPartial.interp_liftsshows that on a lexicon lifting a total one the partial engine's values lift the pure engine's, every mode preserving the lift (Mode.lifts_evalPartial), so such a lexicon has no presupposition failure (Partial.not_presupFailure_of_lifts).Ty.Domain.toPartialis the lift at a first-order type.
References #
Partial denotation domains, as Ty.Domain but with functions the partial functions →.,
whose domain is a lexical entry's definedness condition.
Equations
- Montague.Ty.PDomain E W Montague.Ty.e D = E
- Montague.Ty.PDomain E W Montague.Ty.t D = Prop
- Montague.Ty.PDomain E W Montague.Ty.d D = D
- Montague.Ty.PDomain E W Montague.Ty.n D = ℕ
- Montague.Ty.PDomain E W Montague.Ty.v D = Empty
- Montague.Ty.PDomain E W Montague.Ty.s D = Empty
- Montague.Ty.PDomain E W (a ⇒ b) D = (Montague.Ty.PDomain E W a D →. Montague.Ty.PDomain E W b D)
- Montague.Ty.PDomain E W a.intens D = (W →. Montague.Ty.PDomain E W a D)
Instances For
A partial denotation is a semantic type with a possibly undefined value in its partial domain.
Equations
- Montague.PDenotation E W D = ((ty : Montague.Ty) × Part (Montague.Ty.PDomain E W ty D))
Instances For
Partial denotations of the modes and terms #
The partial denotation of a mode, defined where both daughters are and the function or role head among them is defined at its argument.
Equations
- One or more equations did not get rendered due to their size.
- HeimKratzer.Mode.functionalLeft.evalPartial f x✝ = f.bind fun (fv : Montague.Ty.PDomain E W (σ₂ ⇒ τ) D) => x✝.bind fv
- HeimKratzer.Mode.functionalRight.evalPartial x✝ f = f.bind fun (fv : Montague.Ty.PDomain E W (σ₁ ⇒ τ) D) => x✝.bind fv
Instances For
The partial denotation of a term under a partial interpretation of the constants and an assignment; an abstraction is the partial function undefined wherever its body is.
Equations
- One or more equations did not get rendered due to their size.
- HeimKratzer.Term.evalPartial I g (HeimKratzer.Term.const c) = I c
- HeimKratzer.Term.evalPartial I g (HeimKratzer.Term.var n) = Part.some (g n)
Instances For
Composition of defined daughters #
These are rewriting lemmas rather than simp lemmas, since the reducible Ty.PDomain keys a
concrete domain and a variable one differently for simp's index.
A binary node whose left daughter is a defined function over the right daughter's type applies it forward.
A binary node whose right daughter is a defined function over the left daughter's type applies it backward.
Two defined predicates compose by predicate modification, conjoined pointwise.
Tree interpretation #
The value of an interpreted daughter at the type τ, which is undefined where the daughter
is uninterpretable or of another type.
Equations
- HeimKratzer.Partial.valueAt τ (some ⟨ty, v⟩) = if h : ty = τ then h ▸ v else Part.none
- HeimKratzer.Partial.valueAt τ none = Part.none
Instances For
The partial denotation of a tree under an assignment is its term's partial denotation, with each word's partial denotation its constant. A terminal denotes what its leaf interpretation gives it, a binary node what the mode its daughters' types select composes, a trace the value of its index, and a binder the partial function abstracting over its index in the body.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A node whose daughters its label does not license denotes nothing.
Uninterpretability and presupposition failure #
A tree is uninterpretable when the engine assigns it no denotation.
Equations
- HeimKratzer.Partial.Uninterpretable lex g t = (HeimKratzer.Partial.interp lex g t = none)
Instances For
A tree is a presupposition failure when its denotation is undefined.
Equations
- HeimKratzer.Partial.PresupFailure lex g t = ∃ (d : Montague.PDenotation E W D), HeimKratzer.Partial.interp lex g t = some d ∧ ¬d.snd.Dom
Instances For
Whether a tree is interpretable, and at which type, depends only on the types of its leaves, [HK98]'s characterization of uninterpretability.
Uninterpretability is decided by the leaves' types alone.
The definite article #
A partial predicate holds of an individual when it is defined there and true.
Equations
- HeimKratzer.Partial.Holds P x = ∃ (h : (P x).Dom), (P x).get h
Instances For
[HK98]'s Fregean entry for the definite article, which maps a predicate true of exactly one individual to that individual and is undefined elsewhere.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A total predicate holds where it is true.
On a total predicate true of exactly one individual, the definite article picks it.
Total lexica #
A partial denotation lifts a total one when it agrees with it at a base type and, at a function type, is defined on every lift of an argument with a value lifting the total function's value. On a lexicon whose entries lift a total lexicon, every value of the partial engine is defined and lifts the pure engine's value at the same node, since both evaluate the same term and every mode preserves the lift; so a total lexicon has no presupposition failures.
The lifting relation between a total denotation and a partial one of the same type.
Equations
- Montague.Ty.e.Lifts x_3 y = (x_3 = y)
- Montague.Ty.t.Lifts x_3 y = (x_3 = y)
- Montague.Ty.d.Lifts x_3 y = (x_3 = y)
- Montague.Ty.n.Lifts x_3 y = (x_3 = y)
- Montague.Ty.v.Lifts x_3 y = (x_3 = y)
- Montague.Ty.s.Lifts x_3 y = (x_3 = y)
- (a ⇒ b).Lifts f f' = ∀ (x : Montague.Ty.Domain E W a D) (y : Montague.Ty.PDomain E W a D), a.Lifts x y → ∃ (z : Montague.Ty.PDomain E W b D), f' y = Part.some z ∧ b.Lifts (f x) z
- a.intens.Lifts f f' = ∀ (w : W), ∃ (z : Montague.Ty.PDomain E W a D), f' w = Part.some z ∧ a.Lifts (f w) z
Instances For
The types whose functions take only individuals as arguments are those the extensional lexicon of [HK98] has, namely individuals, truth values, degrees, cardinalities, eventualities, functions from individuals, and intensions.
- e : Ty.e.FirstOrder
- t : Ty.t.FirstOrder
- d : Ty.d.FirstOrder
- n : Ty.n.FirstOrder
- v : Ty.v.FirstOrder
- s : Ty.s.FirstOrder
- fn {b : Ty} : b.FirstOrder → (Ty.e ⇒ b).FirstOrder
- intens {a : Ty} : a.FirstOrder → a.intens.FirstOrder
Instances For
At a first-order type, the lift of a total denotation lifts it.
The partial denotation a total one lifts to.
Equations
- d.toPartial = ⟨d.fst, Part.some (Montague.Ty.Domain.toPartial d.fst d.snd)⟩
Instances For
A first-order total denotation is lifted by its partial counterpart.
Every mode preserves the lift, since on defined daughters that lift total ones a mode's partial value is defined and lifts its total value.
A partial constant lifts a total one when it is defined with a value lifting it.
Equations
- HeimKratzer.LiftsConst ty c c' = ∃ (y : Montague.Ty.PDomain E W ty D), c' = Part.some y ∧ ty.Lifts c y
Instances For
Terms of the same shape whose partial constants lift the total ones have a defined partial denotation lifting the total one, under every assignment.
On a lexicon lifting a total one, every value of the partial engine is defined and lifts the pure engine's value at that node.
A lexicon lifting a total one has no presupposition failures.
The entrywise lift of a first-order lexicon lifts it.
The entrywise lift of a first-order lexicon has no presupposition failures.