Type Theory with Records — Discourse State & Pragmatics #
@cite{cooper-2023} @cite{partee-1973}
Discourse-level infrastructure for TTR (@cite{cooper-2023}, Chapters 2, 4, 5):
Signs & Illocutionary Force: TTRSign, ForcedSign (§2.5–2.6) — the
illocutionary force component reuses Core.Mood.IllocutionaryMood rather
than @cite{cooper-2023}'s parallel four-way IllocForce enum (the surface
distinction assertion | query | command | acknowledgement is the
declarative/interrogative/imperative slice plus a backchannel constructor;
true backchannels live in Theories/Pragmatics/Dialogue/KOS/).
Information States: InfoState (gameboard), agenda operations, bridge to Core.CommonGround (§2.6).
Parametric Content: Parametric bg/fg, PPpty, PQuant, PQuantDet, PRel2 (§4.2–4.3). Bridge to Core.Presupposition.PrProp.
Reference & Mental States: HasNamed, NameContext, semPropNameP, TotalInfoState, AccommodationKind, Paderewski puzzle, Assgnmnt/Cntxt, semPron, parametric verb semantics, Parametric.combine (§4.3–4.7).
Frames & Descriptions: AmbTempFrame, Scale, RiseEvent, IndPpty/FramePpty, Bot, unique, semDefArt, semUniversal, FixedPtType, FrameType, restrictPpty, TravelFrame/PassengerFrame, semBeID, semBeScalar (§5.2–5.8).
§ 2.6 Illocutionary force (Cooper ex 91) #
Signs may carry illocutionary force. @cite{cooper-2023}'s ex (91)
introduces a four-way TTR-internal enum assertion | query | command | acknowledgement. We collapse assertion/query/command into
Core.Mood.IllocutionaryMood's declarative/interrogative/imperative
(the same Searlean cuts) and let backchannel acknowledgements be handled
where dialogue moves live (Theories/Pragmatics/Dialogue/KOS/). The
result: TTR signs share the rest of the library's mood vocabulary
rather than re-stipulating it.
A sign with illocutionary force. @cite{cooper-2023} ex (91), with
IllocForce replaced by Core.Mood.IllocutionaryMood.
- phon : Phon
- cont : Cont
- illoc : Core.Mood.IllocutionaryMood
Instances For
ForcedSign ⊑ TTRSign (adding illoc = more fields = subtype).
Equations
Bridge: IllocutionaryMood → form-level ClauseForm. The two
question form distinctions (matrix vs embedded) are not visible from
illocutionary force alone, so we project to the matrix variant.
Imperatives, promissives, and exclamatives have no ClauseForm
form-counterpart in Features.ClauseForm (which only enumerates the
declarative/question word-order distinctions); they map to none.
Equations
- Semantics.TypeTheoretic.IllocutionaryMood.toClauseForm? Core.Mood.IllocutionaryMood.declarative = some Features.ClauseForm.declarative
- Semantics.TypeTheoretic.IllocutionaryMood.toClauseForm? Core.Mood.IllocutionaryMood.interrogative = some Features.ClauseForm.matrixQuestion
- Semantics.TypeTheoretic.IllocutionaryMood.toClauseForm? Core.Mood.IllocutionaryMood.imperative = none
- Semantics.TypeTheoretic.IllocutionaryMood.toClauseForm? Core.Mood.IllocutionaryMood.promissive = none
- Semantics.TypeTheoretic.IllocutionaryMood.toClauseForm? Core.Mood.IllocutionaryMood.exclamative = none
Instances For
Bridge: form-level ClauseForm → IllocutionaryMood. The form
distinction between matrix and embedded questions collapses on the
force side.
Equations
- Semantics.TypeTheoretic.IllocutionaryMood.fromClauseForm Features.ClauseForm.declarative = Core.Mood.IllocutionaryMood.declarative
- Semantics.TypeTheoretic.IllocutionaryMood.fromClauseForm Features.ClauseForm.matrixQuestion = Core.Mood.IllocutionaryMood.interrogative
- Semantics.TypeTheoretic.IllocutionaryMood.fromClauseForm Features.ClauseForm.embeddedQuestion = Core.Mood.IllocutionaryMood.interrogative
Instances For
Round-trip: fromClauseForm preserves the declarative slot.
Round-trip: fromClauseForm preserves the matrix-question slot.
§ 2.6 Information states and gameboards (Cooper ex 88–90) #
An information state (gameboard) has two parts:
- Private: the agent's agenda (plan of upcoming type acts)
- Shared: latest utterance + shared commitments
An agent's information state (gameboard). §2.6, ex (88).
- agenda : List SignT
The agent's agenda: sign types planned for realization
- latestUtterance : Option SignT
The most recent utterance sign
- commitments : CommT
Shared commitments (accumulated accepted content)
Instances For
Initial information state: empty agenda, no utterance, base commitments.
Equations
- Semantics.TypeTheoretic.InfoState.initial baseComm = { agenda := [], latestUtterance := none, commitments := baseComm }
Instances For
Pop the top agenda item (ExecTopAgenda). §2.6, ex (120).
Equations
- s.execTopAgenda = match s.agenda with | [] => none | top :: rest => some (top, { agenda := rest, latestUtterance := s.latestUtterance, commitments := s.commitments })
Instances For
Remove top agenda item after observation (DownDateAgenda).
Equations
- s.downDateAgenda = { agenda := List.drop 1 s.agenda, latestUtterance := s.latestUtterance, commitments := s.commitments }
Instances For
Record a new utterance and update commitments.
Equations
Instances For
Push a new sign type onto the front of the agenda (PlanAckAss).
Equations
- s.pushAgenda signType = { agenda := signType :: s.agenda, latestUtterance := s.latestUtterance, commitments := s.commitments }
Instances For
Bridge to Core.CommonGround #
Bridge: a Set W-based information state's commitments form a CG.
Equations
- s.toCG = { propositions := s.commitments }
Instances For
InfoState with Set W commitments projects to a context set via CG.
Equations
- Semantics.TypeTheoretic.instHasContextSetInfoStateListSet = { toContextSet := fun (s : Semantics.TypeTheoretic.InfoState SignT (List (Set W))) => s.toCG.contextSet }
Bridge theorem: initial state maps to empty common ground.
Bridge: integrating a commitment = adding to common ground.
Bridge to Semantics.Dynamic.Core.InfoState #
TTR's InfoState tracks discourse state via agenda/commitments.
Semantics.Dynamic.Core.InfoState tracks possibilities (world + assignment).
Bridge: a TTR InfoState with Set W commitments induces a Core InfoState
by filtering possibilities that satisfy all commitments.
Equations
- s.toCoreInfoState = {p : Semantics.Dynamic.Core.Possibility W E | List.Forall (fun (x : Set W) => p.world ∈ x) s.commitments}
Instances For
String type example: a fetch game decomposes into sub-events.
- pickUp : FetchEvent
- throw : FetchEvent
- runAfter : FetchEvent
- pickUpReturn : FetchEvent
- return_ : FetchEvent
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.TypeTheoretic.instDecidableEqFetchEvent x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
The three type acts map to the three Searlean basic illocutionary moods (declarative, interrogative, imperative).
ExecTopAgenda returns None on empty agenda.
PushAgenda then ExecTopAgenda recovers the pushed item.
§ 4.2–4.3 Parametric content #
§4.3 introduces parametric content: semantic content that depends on a context (a presupposition). A parametric content has:
bg(background): a context type — the presuppositionfg(foreground): a function from satisfying contexts to content
Parametric content: a background type (presupposition) paired with a foreground function from satisfying contexts to content. §4.3, (14).
- Bg : Type u_2
Background type — what the context must provide (presupposition)
- fg : self.Bg → Content
Foreground — content given a context satisfying the background
Instances For
Parametric property: context-dependent property.
Equations
Instances For
Parametric quantifier: context-dependent quantifier.
Equations
Instances For
Parametric quantifier determiner: context-dependent Det meaning.
Equations
Instances For
Parametric binary relation: context-dependent transitive verb meaning.
Equations
Instances For
A trivial parametric content: no presupposition (bg = Unit).
Equations
- Semantics.TypeTheoretic.Parametric.trivial c = { Bg := Unit, fg := fun (x : Unit) => c }
Instances For
A trivial parametric content yields the same value for any context.
Bridge: Parametric ↔ PrProp (presupposition/assertion) #
Convert a Parametric (W → Prop) to a PrProp.
Equations
Instances For
Convert a PrProp back to a Parametric.
Equations
Instances For
Parametric ↔ PrProp roundtrip: the assertion component survives when the presupposition holds.
When a Parametric has a Prop-valued background, it directly maps to PrProp.
Equations
- Semantics.TypeTheoretic.Parametric.toPrPropSimple presup assertion = { presup := presup, assertion := fun (w : W) => if h : presup w then assertion w h else False }
Instances For
§ 4.3 Named predicate and parametric proper names #
Context for a proper name: an individual bearing the right name.
- individual : E
- isNamed : HasNamed.named self.individual name
Instances For
Parametric proper name content (revised from Ch3).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bridge: parametric proper name reduces to Ch3 semPropName
when the context is resolved to a specific individual.
§ 4.4 Total information state and accommodation #
A total information state: long-term memory + dialogue gameboard.
- ltm : Memory
Long-term memory: persistent knowledge about individuals
- gb : Board
Dialogue gameboard: dependent on ltm for anchoring
Instances For
The three accommodation strategies for presupposition resolution. §4.4, (74).
- gameboard : AccommodationKind
- longTermMemory : AccommodationKind
- noMatch : AccommodationKind
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.TypeTheoretic.instDecidableEqAccommodationKind x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Accommodation preference: gameboard > long-term memory > no match.
Equations
Instances For
§ 4.5 Paderewski puzzle #
Two-concept state: an agent has two memory entries for "Paderewski".
- asMusician : E
- asPolitician : E
- isPianist : pianist self.asMusician
- isStatesman : statesman self.asPolitician
Instances For
Merging two concepts when they turn out to be the same individual.
Equations
- tc.merge identity = { person := tc.asMusician, isPianist := ⋯, isStatesman := ⋯ }
Instances For
Bridge to Core.Intension: the Paderewski puzzle is an instance of non-rigid identity.
§ 4.6 Unbound pronouns #
Variable assignment: maps natural-number indices to individuals.
Equal to Core.PartialAssign E; the alias name is retained because
Bekki/Asher's TYS prose uses 𝔰/𝔩/𝔯/𝔴/𝔤 as named "assignments" rather
than as partial functions, and the inheritance carries the
valued/valued_update_at simp set into this file's consumers.
Equations
Instances For
An assignment with at least n bindings (all indices < n defined).
Novel relative to Core.PartialAssign; not promoted (single consumer).
Equations
- g.hasBindings n = ∀ i < n, (g i).isSome = true
Instances For
Merge two assignments (left-biased). Novel relative to Core.PartialAssign;
Core.PartialAssign.empty, Core.PartialAssign.update, and the
update-lookup lemmas are inherited via the Assgnmnt := PartialAssign
abbrev and used directly by consumers.
Equations
- g₁.merge g₂ i = (g₁ i).orElse fun (x : Unit) => g₂ i
Instances For
Merge with empty on the left returns the right assignment.
Propositional context.
Equations
Instances For
Pronoun semantics as a parametric quantifier.
Equations
- Semantics.TypeTheoretic.semPron = { Bg := E, fg := fun (a : E) => Semantics.TypeTheoretic.semPropName a }
Instances For
Bridge: pronoun semantics reduces to semPropName when resolved.
Parametric verb semantics #
Parametric intransitive verb content.
Equations
- Semantics.TypeTheoretic.semIntransVerbP Bg p = { Bg := Bg, fg := fun (x : Bg) => Semantics.TypeTheoretic.semCommonNoun p }
Instances For
Parametric transitive verb content.
Equations
- Semantics.TypeTheoretic.semTransVerbP Bg p = { Bg := Bg, fg := fun (x : Bg) (Q : Semantics.TypeTheoretic.Quant E) (x_1 : E) => Q fun (y : E) => p x_1 y }
Instances For
Bridge: transitive verb with trivial context reduces to Montague pattern.
S-combinator for parametric content (α@β) #
Combine two parametric contents via function application.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.TypeTheoretic.instDecidableEqInd4 x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
- mk : Conductor4 Ind4.dudamel
Instances For
- mk : Composer4 Ind4.beethoven
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Semantics.TypeTheoretic.samContext = { individual := Semantics.TypeTheoretic.Ind4.sam, isNamed := trivial }
Instances For
Equations
Instances For
Instances For
Paderewski puzzle in the fragment #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.TypeTheoretic.instDecidableEqPadInd x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pronoun resolution #
Equations
Instances For
§5.2–5.3 Common nouns, individual concepts, and the Partee puzzle #
§5.4 Frames as records #
A scale maps frames to natural numbers.
Equations
- Semantics.TypeTheoretic.Scale Frame = (Frame → ℕ)
Instances For
The canonical temperature scale.
Equations
Instances For
Rise events #
Equations
Instances For
§5.5 Individual-level vs frame-level properties #
Individual-level property.
Equations
Instances For
Frame-level property.
Equations
- Semantics.TypeTheoretic.FramePpty Frame = (Frame → Type)
Instances For
The bottom type: no witnesses.
Equations
- Semantics.TypeTheoretic.Bot = Empty
Instances For
Applying a frame-level property to a non-frame yields ⊥.
Equations
Instances For
Partee puzzle resolution: "ninety is rising" is type-inappropriate.
§5.6 Definite descriptions as dynamic generalized quantifiers #
Uniqueness predicate: exactly one witness of type P.
Equations
- Semantics.TypeTheoretic.unique P = ∃ (x : E), Nonempty (P x) ∧ ∀ (y : E), Nonempty (P y) → y = x
Instances For
Universal quantifier as a type.
Equations
- Semantics.TypeTheoretic.semUniversal restr scope = ((x : E) → restr x → scope x)
Instances For
The definite article as a type.
Equations
- Semantics.TypeTheoretic.semDefArt restr scope = (Semantics.TypeTheoretic.propT (Semantics.TypeTheoretic.unique restr) × Semantics.TypeTheoretic.semUniversal restr scope)
Instances For
The definite article entails the universal.
Equations
- Semantics.TypeTheoretic.defArt_entails_universal P Q h = h.2
Instances For
Uniqueness and universality together give the definite article.
Equations
- Semantics.TypeTheoretic.unique_and_universal_gives_defArt P Q hu hf = ({ down := hu }, hf)
Instances For
§5.6 Fixed-point types (ℱ) #
Fixed-point type of an individual-level property.
Equations
- Semantics.TypeTheoretic.FixedPtType P = ((x : E) × P x)
Instances For
§5.7 Individual vs frame level nouns #
FrameType maps a predicate to its fixed-point type.
Instances For
A frame-level version of an individual-level predicate.
Equations
- Semantics.TypeTheoretic.pFrame p frame = p frame.fst
Instances For
Equations
- Semantics.TypeTheoretic.frameType_subtype p r = r.snd
Instances For
Equations
- Semantics.TypeTheoretic.frame_implies_fixedPt p r _e = r.snd
Instances For
RestrictCommonNoun #
Restrict a property to a subtype.
Equations
- Semantics.TypeTheoretic.restrictPpty P T x = (P x × T x)
Instances For
Equations
- Semantics.TypeTheoretic.restrictPpty_strengthens P T x h = h.1
Instances For
§5.8 Passengers and ships #
A travel frame.
- source : Loc
- goal : Loc
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A passenger frame.
- x : E
- isPassenger : passenger self.x
- journey : TravelFrame Loc
Instances For
IntransVerbIndToFrame.
Equations
- Semantics.TypeTheoretic.intransVerbFrame getInd p frame = p (getInd frame)
Instances For
Plural predicates #
A plural (distributive) predicate.
Equations
- Semantics.TypeTheoretic.pluralPred p A = ((a : E) → A a → p a)
Instances For
Equations
- Semantics.TypeTheoretic.pluralPred_entails_each p A h a ha = h a ha
Instances For
Proper parts of records (mereology) #
A projection from record type R₂ to R₁ witnesses that R₁ is a "part" of R₂.
- project : R₂ → R₁
- notIso : ¬Function.Bijective self.project
Instances For
Equations
Instances For
Two different passenger frames can project to the same individual.
Copula variants #
SemBe_ID: identity for individuals.
Equations
- Semantics.TypeTheoretic.semBeID x y = Semantics.TypeTheoretic.propT (x = y)
Instances For
SemBe_scalar: scalar identity via a scale function.
Equations
- Semantics.TypeTheoretic.semBeScalar scale frame n = Semantics.TypeTheoretic.propT (scale frame = n)
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.TypeTheoretic.instDecidableEqTempLoc x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Semantics.TypeTheoretic.tempAt _loc _x = True
Instances For
Equations
Instances For
Equations
- Semantics.TypeTheoretic.chicago90 = { x := 90, loc := Semantics.TypeTheoretic.TempLoc.chicago, constraint := trivial }
Instances For
Equations
- Semantics.TypeTheoretic.chicago95 = { x := 95, loc := Semantics.TypeTheoretic.TempLoc.chicago, constraint := trivial }
Instances For
Equations
- Semantics.TypeTheoretic.tempRising = { before := Semantics.TypeTheoretic.chicago90, after := Semantics.TypeTheoretic.chicago95, rises := Semantics.TypeTheoretic.tempRising._proof_1 }
Instances For
"The dog is Fido" vs "The temperature is ninety" #
Equations
- Semantics.TypeTheoretic.dogIsFido = { down := ⋯ }
Instances For
Equations
Instances For
Definite article phenomena #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Fixed-point type phenomena #
Equations
Instances For
Passenger individuation #
Equations
- Semantics.TypeTheoretic.isPassenger5 x✝ = True
Instances For
Equations
- Semantics.TypeTheoretic.takesJourney5 x✝¹ x✝ = True
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Semantics.TypeTheoretic.samPassenger1 = { x := Semantics.TypeTheoretic.Ind4.sam, isPassenger := trivial, journey := Semantics.TypeTheoretic.journey1, takesJourney := trivial }
Instances For
Equations
- Semantics.TypeTheoretic.samPassenger2 = { x := Semantics.TypeTheoretic.Ind4.sam, isPassenger := trivial, journey := Semantics.TypeTheoretic.journey2, takesJourney := trivial }
Instances For
Questions as Dependent Types #
@cite{ginzburg-2012}
In TTR, a question is a function from a record type to a type — essentially
a dependent function (x : R) → T(x). A polar question is a proposition
(0-ary: no open parameters). A wh-question has open parameters: "Who runs?"
is λ (x : Ind) => Run(x).
An answer to a question Q : R → Type is a witness ⟨r, Q r⟩ — a record
r together with evidence that Q r is inhabited.
This connects to KOS: the DGB's QUD can be typed as TTRQuestion E, and
Answerhood can be instantiated so that a fact resolves a question when
it provides a witness.
A TTR question: a dependent type over a domain.
@cite{ginzburg-2012} Ch. 4: "A question is a function from a (possibly
empty) record type to a type." Polar questions have R = Unit;
wh-questions have R = the domain of quantification.
- body : R → Type
The body of the question: maps each possible answer to its content type
Instances For
A complete answer to a TTR question: a witness.
- witness : R
The answer value
Evidence that the answer satisfies the question body
Instances For
A polar question: no open parameters, just a proposition.
Equations
- Semantics.TypeTheoretic.TTRQuestion.polar P = { body := fun (x : Unit) => P }
Instances For
A wh-question: "Which x satisfies P?"
Equations
- Semantics.TypeTheoretic.TTRQuestion.wh P = { body := P }
Instances For
A question is resolved when a witness exists.
Equations
- q.isResolved = ∃ (r : R), Nonempty (q.body r)
Instances For
A polar question is resolved iff the proposition is inhabited.
A wh-question is resolved iff some entity satisfies the predicate.
Bridge: TTR parametric content (Parametric) as a question.
A Parametric T has background type Bg and foreground Bg → T.
When T = Type, this IS a TTR question: each background value
determines a type (the question's content at that resolution).
Equations
- p.toTTRQuestion = { body := p.fg }
Instances For
Austinian Propositions for Discourse #
@cite{ginzburg-2012} @cite{barwise-perry-1983}
§6.5 defines TrueAustinianProp as a situation–type pair
that carries its own witness (always true by construction). This suffices
for truth-conditional semantics but not for discourse: when A asserts
"Bo is here", the content enters FACTS as a checkable claim that can
be true or false.
@cite{ginzburg-2012} Ch. 4 uses Austinian propositions as the content type for DGB FACTS. The key difference: the situation and type are independent — the proposition is true iff the situation satisfies the type, but this need not hold.
CheckableAustinian separates the situation from the classifying predicate,
enabling:
- Propositions that can be false (sit doesn't satisfy the type)
- A bridge to
(W → Bool)forHasContextSetintegration - DGB FACTS typed as checkable Austinian propositions
A checkable Austinian proposition: situation + classifying predicate.
Unlike TrueAustinianProp (which carries its own witness), a CheckableAustinian
separates the situation from the predicate, so it can be false.
@cite{ginzburg-2012} Ch. 4: [sit = s, sit-type = T] where truth requires
s : T. @cite{barwise-perry-1983}: situation supports a type.
- sit : S
The situation being classified
- sitType : S → Prop
The classifying predicate (situation type)
Instances For
A checkable Austinian proposition is true iff the situation satisfies the type.
Instances For
A checkable Austinian proposition is false iff the situation doesn't satisfy the type.
Instances For
Decidable variant for computational use.
- sit : S
- sitType : S → Bool
Instances For
Decidable truth check.
Instances For
Convert a decidable Austinian to S → Bool: evaluate at each world/situation.
Instances For
A true Austinian proposition's toBProp holds at its situation.