Documentation

Linglib.Theories.Dialogue.KOS.Examples

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 #

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.

@[implicit_reducible]

String-based answerhood: a fact resolves a question if they match.

Equations
def Dialogue.KOS.Examples.tis₀ :
TIS String String String String

Start: empty TIS.

Equations
Instances For
    def Dialogue.KOS.Examples.tis₁ :
    TIS String String String String

    Step 1: A asks "Is Bo here?"

    Equations
    Instances For
      def Dialogue.KOS.Examples.tis₂ :
      TIS String String String String

      Step 2: B asserts "Bo is here."

      Equations
      Instances For
        def Dialogue.KOS.Examples.tis₃ :
        TIS String String String String

        Step 3: A accepts B's assertion.

        Equations
        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).

          theorem Dialogue.KOS.Examples.inquiry_step3_facts :
          tis₃.dgb.facts = ["Bo is here", "Bo is here"]

          After Accept, the fact appears twice (once from assert, once from accept).

          Moves accumulate through the inquiry cycle.

          def Dialogue.KOS.Examples.checkTIS₀ :
          TIS String String String String

          A(1): Bo is in Essen. (Assert)

          Equations
          Instances For
            def Dialogue.KOS.Examples.checkTIS₂ :
            TIS String String String String

            B(1b): Is he? (Check)

            Equations
            Instances For
              def Dialogue.KOS.Examples.checkTIS₃ :
              TIS String String String String

              A(2): Confirm.

              Equations
              Instances For

                After Check, QUD has the polar question.

                After Confirm, the fact is in FACTS and QUD is resolved.

                def Dialogue.KOS.Examples.awq₀ :
                TIS String String String String

                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)

                Equations
                Instances For
                  def Dialogue.KOS.Examples.awq₁ :
                  TIS String String String String
                  Equations
                  Instances For
                    def Dialogue.KOS.Examples.awq₂ :
                    TIS String String String String
                    Equations
                    Instances For

                      After assertWithQUD, the question from Ask is resolved (fact matches).

                      The fact is in FACTS after assertWithQUD.

                      Three-world scenario: is it raining?

                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[implicit_reducible]
                          Equations

                          "Is it raining?" — partition into rainy vs non-rainy.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            A tagged proposition for the rain example: pairs a Set RainWorld with a tag enabling decidable equality and Bool-valued resolution.

                            Instances For
                              @[implicit_reducible]
                              Equations
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[implicit_reducible]
                                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

                                  "It is sunny" — true only in the sunny world.

                                  Equations
                                  Instances For

                                    Full inquiry cycle with partition-based support (via RainProp tags).

                                    Equations
                                    Instances For
                                      @[implicit_reducible]
                                      Equations
                                      • One or more equations did not get rendered due to their size.

                                      After asking, QUD has the partition question.

                                      After asserting "It is raining", QUD is empty (resolved).