Discourse representation structures #
A discourse representation structure (DRS) pairs a finite set of discourse referents, Kamp and
Reyle's universe U, with a list of conditions on them (Def. 1.4.1). A condition is atomic, an
atom of a FirstOrder.Language or an equation between referents, or complex, a negation or the
conditional and binary disjunction of Chapter 2, and sub-DRSs occur only inside complex conditions.
Muskens draws a DRS as a box [u₁ … uₙ | γ₁ … γₘ]. Verification and truth are in
DRS/Verification.lean, the structural theory in DRS/Basic.lean.
Main declarations #
Condition,DRS: conditions and DRSs over a languageLand referent typeV;DRS L Vis the generic containerBox(DRS/Box.lean) instantiated atCondition L V.DRS.merge: the merge⊕, which unions the referents and appends the conditions.DirectlySubordinate,Subordinate,WeakSubordinate: immediate subordination and its transitive and reflexive-transitive closures (Def. 1.4.10, Def. 2.1.2). Accessibility is read off occurrences and lives inDRS/Accessibility.lean.
Main statements #
WeakSubordinate.antisymm: weak subordination is a partial order.
Implementation notes #
referentsis the textbookU;universeis a Lean keyword andunivcollides withFinset.univ.Boxis a container structure the condition syntax nests through, andDRSits instantiation atCondition L V— Def. 1.4.1's simultaneous recursion without a mutual block, keeping the structure API.conditionsis aList, since an inductive cannot nest throughFinset/Multiset; set semantics is recovered by the interpretation (verifies_perm,DRS/Verification.lean).DRTis the owning namespace, on theFirstOrder.Languagepattern.
References #
A DRS-condition is atomic, an atom or an equation, or complex, a negation (Def. 1.4.1) or a conditional or disjunction (Chapter 2). Sub-DRSs occur only inside complex conditions.
- atom
{L : FirstOrder.Language}
{V : Type w}
(a : L.Atom V)
: Condition L V
The atomic condition of an atom over the referents.
- eq
{L : FirstOrder.Language}
{V : Type w}
(u v : V)
: Condition L V
Atomic equality condition
u = v. - neg
{L : FirstOrder.Language}
{V : Type w}
(K : Box V (Condition L V))
: Condition L V
Complex condition
¬K. - imp
{L : FirstOrder.Language}
{V : Type w}
(ante cons : Box V (Condition L V))
: Condition L V
Complex condition
K₁ ⇒ K₂(antecedent ⇒ consequent). - dis
{L : FirstOrder.Language}
{V : Type w}
(left right : Box V (Condition L V))
: Condition L V
Complex condition
K₁ ∨ K₂.
Instances For
A discourse representation structure pairs a universe of discourse referents, the objects under discussion, with the conditions that record what has been said of them (Def. 1.4.1).
Equations
- DRT.DRS L V = DRT.Box V (DRT.Condition L V)
Instances For
Equations
- DRT.DRS.instInhabited = { default := DRT.DRS.empty }
The merge K₁ ⊕ K₂ unions the referents and appends the conditions —
[Mus96]'s compositional operation (Kamp & Reyle combine DRSs
incrementally via the construction algorithm instead). An operation, not a
syntactic constructor.
Equations
- K₁.merge K₂ = { referents := K₁.referents ∪ K₂.referents, conditions := K₁.conditions ++ K₂.conditions }
Instances For
Induction on conditions descends into sub-boxes, handling each constructor given the motive for every condition of its sub-boxes.
Subordination #
DirectlySubordinate K' K says K' is a sub-box of one of K's conditions, by the neg
case of Def. 1.4.10(i), the ⇒ cases of Def. 2.1.2 (which subordinates both components of a
conditional to the containing DRS), and the ∨ cases of Def. 2.4.3(i)(c), where no disjunct is
subordinate to another. It is a relation on DRS values, where the textbook's is on box
occurrences. Every clause pins the containing box in its conclusion, since an unpinned clause
(such as consequent-below-antecedent) would hold of every pair of DRSs via a manufactured
container. The ⇒ visibility asymmetry is not subordination but accessibility
(DRS/Accessibility.lean).
- neg
{L : FirstOrder.Language}
{V : Type w}
{D K : DRS L V}
: Condition.neg K ∈ D.conditions → DirectlySubordinate K D
The body of a
¬is directly subordinate to the containing DRS. - impAnte
{L : FirstOrder.Language}
{V : Type w}
{D a c : DRS L V}
: Condition.imp a c ∈ D.conditions → DirectlySubordinate a D
The antecedent of a
⇒is directly subordinate to the containing DRS. - impCons
{L : FirstOrder.Language}
{V : Type w}
{D a c : DRS L V}
: Condition.imp a c ∈ D.conditions → DirectlySubordinate c D
The consequent of a
⇒is directly subordinate to the containing DRS. - disL
{L : FirstOrder.Language}
{V : Type w}
{D l r : DRS L V}
: Condition.dis l r ∈ D.conditions → DirectlySubordinate l D
The left disjunct of a
∨is directly subordinate to the containing DRS. - disR
{L : FirstOrder.Language}
{V : Type w}
{D l r : DRS L V}
: Condition.dis l r ∈ D.conditions → DirectlySubordinate r D
The right disjunct of a
∨is directly subordinate to the containing DRS.
Instances For
Subordinate is the < of Def. 1.4.10(ii), the transitive closure of
DirectlySubordinate.
Equations
- DRT.Subordinate = Relation.TransGen DRT.DirectlySubordinate
Instances For
WeakSubordinate is the ≤ of Def. 1.4.10(ii), the reflexive-transitive closure of
DirectlySubordinate.
Equations
- DRT.WeakSubordinate = Relation.ReflTransGen DRT.DirectlySubordinate
Instances For
A directly subordinate DRS is a structurally smaller value.
Subordinate DRSs are structurally smaller; subordination chains terminate.
Weak subordination is a partial order on DRS values.