Documentation

Linglib.Theories.Semantics.Dynamic.Systems.PLA.Update

@[reducible, inline]

An information state is a set of (assignment, witness) pairs.

This represents the current state of the discourse: all ways the conversation could be going given what's been said.

Using abbrev makes this a transparent alias so all Set instances apply directly.

Equations
Instances For

    The trivial state: all possibilities

    Equations
    Instances For

      The absurd state: no possibilities

      Equations
      Instances For

        State is consistent (non-empty)

        Equations
        Instances For

          Restrict state to pairs where formula is satisfied

          Equations
          Instances For

            The content of a formula: set of (g, ê) pairs where φ is satisfied.

            ⟦φ⟧^M = { (g, ê) | M, g, ê ⊨ φ }

            This is the "static" meaning - what information φ conveys.

            Equations
            Instances For
              theorem Semantics.Dynamic.PLA.Formula.mem_content {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (g : Assignment E) (ê : WitnessSeq E) :
              (g, ê) content M φ sat M g ê φ
              theorem Semantics.Dynamic.PLA.Formula.content_neg {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) :
              content M (φ) = (content M φ)

              Content of negation is complement

              theorem Semantics.Dynamic.PLA.Formula.content_conj {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) :
              content M (φ ψ) = content M φ content M ψ

              Content of conjunction is intersection

              @[reducible, inline]
              abbrev Semantics.Dynamic.PLA.Poss (E : Type u_1) :
              Type u_1

              PLA Possibility type: (assignment, witness sequence) pairs.

              This instantiates the generic Core.CCP framework for PLA.

              Equations
              Instances For

                PLA satisfaction relation: possibility satisfies formula.

                This bridges PLA to the Core.CCP infrastructure, matching the signature P → φ → Prop expected by Core.updateFromSat.

                Equations
                Instances For
                  def Semantics.Dynamic.PLA.Formula.satPoss {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) :
                  Poss EProp

                  PLA satisfaction as a predicate on possibilities (curried version).

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev Semantics.Dynamic.PLA.Update (E : Type u_1) :
                    Type u_1

                    An update is a Context Change Potential over PLA possibilities.

                    We inherit the Monoid structure from Core.CCP:

                    • Identity: Core.CCP.id (leaves state unchanged)
                    • Composition: Core.CCP.seq (do u, then v), notation ;
                    • Associativity: guaranteed by the Monoid laws
                    Equations
                    Instances For
                      @[reducible, inline]

                      Identity update: leaves state unchanged (from Core.CCP)

                      Equations
                      Instances For
                        @[reducible, inline]

                        Absurd update: always yields empty state (from Core.CCP)

                        Equations
                        Instances For

                          Absurd before anything yields absurd output (from Core.CCP)

                          The update of a formula: filter state to satisfying pairs.

                          ⟦φ⟧ : InfoState → InfoState ⟦φ⟧(s) = { (g, ê) ∈ s | M, g, ê ⊨ φ }

                          Equations
                          Instances For
                            theorem Semantics.Dynamic.PLA.Formula.mem_update {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s : InfoState E) (g : Assignment E) (ê : WitnessSeq E) :
                            (g, ê) update M φ s (g, ê) s sat M g ê φ

                            Theorem 3.1 (contents-updates equivalence).

                            The update of φ is intersection with the content of φ:

                            ⟦φ⟧(s) = s ∩ ⟦φ⟧^M

                            This shows Contents and Updates are equivalent perspectives.

                            A state supports a formula iff the formula is satisfied throughout the state.

                            s ⊨ φ iff ∀(g, ê) ∈ s, M, g, ê ⊨ φ

                            This is the evidential perspective: the speaker's evidence supports φ.

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

                                Empty state supports everything (vacuously)

                                theorem Semantics.Dynamic.PLA.InfoState.supports_mono {E : Type u_1} [Nonempty E] (s t : InfoState E) (M : Model E) (φ : Formula) (h : s t) (ht : t ⊫[M] φ) :
                                s ⊫[M] φ

                                Support is monotonic: if s ⊆ t and t supports φ, then s supports φ

                                theorem Semantics.Dynamic.PLA.InfoState.supports_conj {E : Type u_1} [Nonempty E] (s : InfoState E) (M : Model E) (φ ψ : Formula) :
                                (s ⊫[M] φ ψ) (s ⊫[M] φ) s ⊫[M] ψ

                                Support and conjunction

                                theorem Semantics.Dynamic.PLA.updates_support_equiv {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s : InfoState E) :
                                (s ⊫[M] φ) Formula.update M φ s = s

                                Theorem 3.2 (updates-support equivalence).

                                A state supports φ iff updating with φ leaves it unchanged:

                                s ⊫[M] φ ↔ ⟦φ⟧(s) = s

                                This shows Updates and Support are equivalent perspectives.

                                Dynamic conjunction (Observation 4): sequential update, φ then ψ.

                                Non-commutative: "A man came. He sat down." ≠ "He sat down. A man came." Non-idempotent: ∃x.φ; ∃x.φ ≠ ∃x.φ (may introduce different witnesses).

                                Equations
                                Instances For
                                  theorem Semantics.Dynamic.PLA.Formula.dynConj_eq {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) :
                                  dynConj M φ ψ s = update M ψ (update M φ s)

                                  Dynamic conjunction update rule

                                  theorem Semantics.Dynamic.PLA.Formula.mem_dynConj {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) (g : Assignment E) (ê : WitnessSeq E) :
                                  (g, ê) dynConj M φ ψ s (g, ê) s sat M g ê φ sat M g ê ψ

                                  Dynamic conjunction membership

                                  theorem Semantics.Dynamic.PLA.dynConj_static {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) (_hφ : φ.domain = ) (_hψ : ψ.domain = ) :
                                  Formula.dynConj M φ ψ s = Formula.update M (φ ψ) s

                                  For static formulas (no new drefs), dynamic conjunction equals static conjunction.

                                  Observation 5: existentials are not idempotent.

                                  "A man came. A man sat down." - may be different men. Each ∃x.φ independently chooses a witness.

                                  Observation 6: ¬¬φ ≢ φ for dref-introducing φ.

                                  "It's not the case that no man came. He sat down." - "He" is problematic. Negation "traps" drefs: ∃x.P(x) exports x, but ¬¬∃x.P(x) only tests existence. This motivates bilateral semantics (BUS), where DNE holds structurally.

                                  theorem Semantics.Dynamic.PLA.update_taut {E : Type u_1} [Nonempty E] (M : Model E) (s : InfoState E) (φ : Formula) (htaut : ∀ (g : Assignment E) (ê : WitnessSeq E), Formula.sat M g ê φ) :
                                  Formula.update M φ s = s

                                  Updating with a tautology leaves state unchanged

                                  theorem Semantics.Dynamic.PLA.update_contra {E : Type u_1} [Nonempty E] (M : Model E) (s : InfoState E) (φ : Formula) (hcontra : ∀ (g : Assignment E) (ê : WitnessSeq E), ¬Formula.sat M g ê φ) :

                                  Updating with a contradiction yields empty state

                                  theorem Semantics.Dynamic.PLA.update_elim {E : Type u_1} [Nonempty E] (M : Model E) (s : InfoState E) (φ : Formula) (h : s ⊫[M] φ) :
                                  Formula.update M φ s = s

                                  Update elimination: if s already supports φ, update is identity

                                  PLA formula update equals Core.updateFromSat via satPoss.

                                  theorem Semantics.Dynamic.PLA.update_eliminative {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s : InfoState E) :

                                  Eliminativity: updates never add possibilities, only remove them.

                                  This is the fundamental property of dynamic semantics: information only grows. Every update is a subset of the input state.

                                  This follows from Core.updateFromSat_eliminative.

                                  PLA's formula update is eliminative in the Core sense.

                                  theorem Semantics.Dynamic.PLA.update_monotone {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s t : InfoState E) (h : s t) :

                                  Monotonicity of update: larger input states yield larger output states.

                                  If s ⊆ t, then φ.update(s) ⊆ φ.update(t).

                                  This follows from Core.updateFromSat_monotone.

                                  theorem Semantics.Dynamic.PLA.support_downward_closed {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s t : InfoState E) (h : t s) (hs : s ⊫[M] φ) :
                                  t ⊫[M] φ

                                  Support is downward closed: if t ⊆ s and s supports φ, then t supports φ.

                                  Smaller states have "more information" (fewer possibilities = more certainty).

                                  theorem Semantics.Dynamic.PLA.support_inter {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s t : InfoState E) (hs : s ⊫[M] φ) (_ht : t ⊫[M] φ) :
                                  s t ⊫[M] φ

                                  Intersection preserves support: if s and t both support φ, so does s ∩ t.

                                  theorem Semantics.Dynamic.PLA.support_union_iff {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s t : InfoState E) :
                                  (s t ⊫[M] φ) (s ⊫[M] φ) t ⊫[M] φ

                                  Union and support: s ∪ t supports φ iff both s and t support φ.

                                  theorem Semantics.Dynamic.PLA.update_inter {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s t : InfoState E) :

                                  Update distributes over intersection: φ.update(s ∩ t) = φ.update(s) ∩ φ.update(t)

                                  theorem Semantics.Dynamic.PLA.dynConj_subset_inter {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) :

                                  Sequential composition with intersection: (φ; ψ)(s) ⊆ φ(s) ∩ ψ(s)

                                  Note: this is not equality in general due to the dynamic nature of sequencing.

                                  CCP Reducibility: updates = intersection with content.

                                  theorem Semantics.Dynamic.PLA.static_seq_is_intersection {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) (_hφ : φ.domain = ) (_hψ : ψ.domain = ) :

                                  Sequential composition = nested intersection of contents.

                                  Only ∃ introduces discourse referents.

                                  Domain empty iff no variables bound.

                                  theorem Semantics.Dynamic.PLA.ccp_reduces_to_static {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) ( : φ.domain = ) ( : ψ.domain = ) :

                                  CCP reducibility: for dref-free formulas, φ; ψ = φ ∧ ψ.

                                  theorem Semantics.Dynamic.PLA.updates_are_tests {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) (s : InfoState E) :

                                  Updates are eliminative: they only filter, never add.

                                  theorem Semantics.Dynamic.PLA.same_content_same_update {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (hcontent : Formula.content M φ = Formula.content M ψ) (s : InfoState E) :

                                  Same content implies same update.

                                  Updates are intersection with content: φ.update s = { p ∈ s | p ∈ φ.content }.

                                  Dynamic entailment: φ dynamically entails ψ if updating with φ always yields a state that supports ψ.

                                  This is the fundamental semantic consequence relation for dynamic semantics.

                                  Equations
                                  Instances For
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem Semantics.Dynamic.PLA.dynamicEntails_refl {E : Type u_1} [Nonempty E] (M : Model E) (φ : Formula) :
                                      φ ⊨[M]_dyn φ

                                      Reflexivity of dynamic entailment: φ ⊨_dyn φ.

                                      Updating with φ yields a state that supports φ.

                                      theorem Semantics.Dynamic.PLA.dynamicEntails_trans {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ χ : Formula) (h1 : φ ⊨[M]_dyn ψ) (h2 : ψ ⊨[M]_dyn χ) :
                                      φ ⊨[M]_dyn χ

                                      Chaining dynamic entailment: if φ ⊨_dyn ψ and ψ ⊨_dyn χ, then φ ⊨_dyn χ.

                                      Note: This holds because update is eliminative - if φ entails ψ, then updating with φ produces a state that supports ψ, and since that state is a subset of the original, it also supports χ if ψ ⊨_dyn χ.

                                      theorem Semantics.Dynamic.PLA.dynamicEntails_weakening {E : Type u_1} [Nonempty E] (M : Model E) (φ ψ : Formula) (s : InfoState E) (hent : φ ⊨[M]_dyn ψ) :

                                      Weakening: if s supports φ and φ ⊨_dyn ψ, then φ.update(s) supports ψ.