KOS: Worked Examples #
@cite{ginzburg-2012} Ch. 4 ex. 66, ex. 68
Public worked examples demonstrating the substrate operations on concrete
inputs. Earlier these lived inline in KOS/Rules.lean as private defs;
they are public here so consumers (study files, the TTR-typed counterpart
in KOS/Austinian.lean) can reference them.
Sections #
- §1. Inquiry cycle (Bo): A asks "Is Bo here?", B asserts, A accepts
- §2. Check/Confirm cycle: A asserts, B checks, A confirms
- §3. AssertWithQUD cycle: full Assert protocol on the Bo example
- §4. Partition-based answerhood (RainWorld): typed propositions
resolving a partition QUD via
PropResolvesQUD
The string-based examples use a generic DecidableSupport String String
instance (string equality as answerhood), and instantiate Cont = String
for utterance content (since the worked examples don't exercise the
LocProp Pending pipeline). See KOS/Austinian.lean for the TTR-typed
counterpart over BCheckableAustinian S and TTRQuestionB R.
String-based answerhood: a fact resolves a question if they match.
Equations
- Dialogue.KOS.Examples.instDecidableSupportString = { supports := fun (fact question : String) => fact = question, decSupports := fun (a b : String) => decEq a b }
Start: empty TIS.
Instances For
Step 1: A asks "Is Bo here?"
Equations
- Dialogue.KOS.Examples.tis₁ = Dialogue.KOS.Examples.tis₀.ask "Bo is here"
Instances For
Step 2: B asserts "Bo is here."
Equations
- Dialogue.KOS.Examples.tis₂ = Dialogue.KOS.Examples.tis₁.assertRule "Bo is here"
Instances For
Step 3: A accepts B's assertion.
Equations
- Dialogue.KOS.Examples.tis₃ = Dialogue.KOS.Examples.tis₂.accept "Bo is here"
Instances For
After Ask, QUD contains the question (wrapped as an InfoStruc with no FECs).
After Ask, FACTS are unchanged.
After Ask, the move is recorded.
After Assert, the fact is in FACTS.
After Assert, QUD is empty (the question was resolved).
After Accept, the fact appears twice (once from assert, once from accept).
Moves accumulate through the inquiry cycle.
A(1): Bo is in Essen. (Assert)
Instances For
Equations
- Dialogue.KOS.Examples.checkTIS₁ = Dialogue.KOS.Examples.checkTIS₀.assertRule "Bo is in Essen"
Instances For
B(1b): Is he? (Check)
Equations
- Dialogue.KOS.Examples.checkTIS₂ = Dialogue.KOS.Examples.checkTIS₁.check "Bo is in Essen" "Bo is in Essen"
Instances For
A(2): Confirm.
Equations
- Dialogue.KOS.Examples.checkTIS₃ = Dialogue.KOS.Examples.checkTIS₂.confirm "Bo is in Essen"
Instances For
After Check, QUD has the polar question.
After Confirm, the fact is in FACTS and QUD is resolved.
Full inquiry cycle using the Ginzburg 2012 Assert protocol.
A: "Is Bo here?" (Ask) B: "Bo is here." (AssertWithQUD — pushes About("Bo is here") onto QUD) A: accepts (Accept + factUpdateQudDowndate)
Instances For
Equations
- Dialogue.KOS.Examples.awq₁ = Dialogue.KOS.Examples.awq₀.ask "Bo is here"
Instances For
Equations
- Dialogue.KOS.Examples.awq₂ = Dialogue.KOS.Examples.awq₁.assertWithQUD "Bo is here" "Bo is here"
Instances For
After assertWithQUD, the question from Ask is resolved (fact matches).
The fact is in FACTS after assertWithQUD.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Dialogue.KOS.Examples.instDecidableEqRainWorld x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
"Is it raining?" — partition into rainy vs non-rainy.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Dialogue.KOS.Examples.instDecidableEqRainProp x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
"It is raining" — true only in the rainy world.
Equations
Instances For
Equations
- Dialogue.KOS.Examples.instDecidablePredRainWorldItIsRaining w = id inferInstance
"It is sunny" — true only in the sunny world.
Equations
Instances For
Equations
- Dialogue.KOS.Examples.instDecidablePredRainWorldItIsSunny w = id inferInstance
"It is raining" resolves "Is it raining?"
"It is sunny" also resolves "Is it raining?"
Full inquiry cycle with partition-based support (via RainProp tags).
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
After asking, QUD has the partition question.
Equations
Instances For
After asserting "It is raining", QUD is empty (resolved).