Relational (dynamic) semantics of DRSs, and its equivalence with verifying embeddings #
Muskens's reformulation of DRT. Conditions denote sets of embeddings (SEM1/2);
boxes denote binary relations between embeddings (SEM3, input → output); a box
is true under an input embedding a iff some output a' is related to it
(p. 148). This is the dynamic / CCP face of DRT, dual to the static
verifying-embedding semantics DRS.Realize ([KR93], Def. 1.4.4).
The two semantics are defined independently and proved equivalent — Muskens's remark that the relational interpretation "is in fact equivalent" to Kamp & Reyle's. The equivalence is a theorem, not a definitional identification:
DRS.toRel_iff_realize— the relationtoRel K a a'holds iffa'extendsaoverK's universe and verifiesK(the keystone bridge).DRS.trueRel_iff_realize_toFormula— the dynamic truth of a DRS equals its first-order translation'sRealize, closing the triangle withReduction(Realize—toFormula—toRel, each pair related by a proven theorem).
Main declarations #
DRS.toRel/Condition.holds— the relational (SEM3) and set (SEM1/2) denotations.DRS.trueRel— relational truth: some output embedding is related to the input.DRS.toRel_iff_realize/Condition.holds_iff_realize— equivalence with the staticDRS.Realizesemantics.DRS.occ/DRS.trueRel_congr— occurring referents and the coincidence lemma (denotation depends only on them).DRS.toRel_merge— the Merging Lemma: under freshness,mergedenotes the sequencing (relational composition) of the two box relations.
Reindexing concrete atomic arguments #
A concrete DRS atom .rel R ![k₁, …] interprets (via holds/Realize) to
RelMap R (fun i => v (![k₁, …] i)). These @[simp] lemmas reindex that to
![v k₁, …], so truth-condition proofs over concrete DRSs work with the atom's
assigned values directly. (No general mathlib form exists — Loogle finds only a
buried comp_fin3 in the elliptic-curve files.)
The relational denotation #
The relational (dynamic) denotation of a DRS ([Mus96], SEM3): the
input-output relation ⟨a, a'⟩ where a' differs from a at most on the
universe and verifies every condition.
Equations
- (DRT.DRS.mk U conds).toRel = fun (a a' : V → M) => (∀ x ∉ U, a' x = a x) ∧ DRT.Condition.holdsAll conds a'
Instances For
The set denotation of a condition ([Mus96], SEM1/2): the set of
embeddings at which it holds. Complex conditions reference the box relation
DRS.toRel of their sub-DRSs.
Equations
- (DRT.Condition.rel R args).holds = fun (a : V → M) => FirstOrder.Language.Structure.RelMap R fun (i : Fin n) => a (args i)
- (DRT.Condition.eq u v).holds = fun (a : V → M) => a u = a v
- (DRT.Condition.neg K).holds = fun (a : V → M) => ¬∃ (a' : V → M), K.toRel a a'
- (DRT.Condition.imp ante cons).holds = fun (a : V → M) => ∀ (a' : V → M), ante.toRel a a' → ∃ (a'' : V → M), cons.toRel a' a''
- (DRT.Condition.dis l r).holds = fun (a : V → M) => ∃ (a' : V → M), l.toRel a a' ∨ r.toRel a a'
Instances For
Every condition in the list holds at a. A List helper — the higher-order
form fails the nested-inductive structural-recursion checker.
Equations
- DRT.Condition.holdsAll [] = fun (x : V → M) => True
- DRT.Condition.holdsAll (c :: cs) = fun (a : V → M) => c.holds a ∧ DRT.Condition.holdsAll cs a
Instances For
Equivalence with the verifying-embedding semantics #
Muskens ≡ Kamp & Reyle ([Mus96]): the relational denotation
agrees with the static verifying-embedding semantics — toRel K a a' holds iff
the output a' extends the input a over K's universe and verifies K.
The list analogue of Condition.holds_iff_realize.
The dynamic truth of a DRS equals its first-order translation's Realize
([Mus96]; [KR93] §1.5) — the third edge of the
Realize/toFormula/toRel triangle.
The coincidence lemma #
Coincidence: a DRS's relational truth depends only on the input
embedding's values at its occurring referents. Proved by surgery on the output
witness, the load-bearing case being the imp clause of Condition.holds_congr.
The list analogue of Condition.holds_congr.
The merging lemma: sequencing is merge, under freshness #
Merging Lemma ([Mus96], §II.2): when K₂'s universe is fresh
for K₁'s conditions, the relation denoted by the merge K₁ ⊕ K₂ is the
relational composition (sequencing K₁ ; K₂) of the two box relations —
‖K₁ ⊕ K₂‖ = ‖K₁‖ ∘ ‖K₂‖. This is what gives merge its dynamic meaning.