Documentation

Linglib.Theories.Semantics.Dynamic.UpdateSemantics.Default

Default Reasoning in Update Semantics #

@cite{veltman-1996}

@cite{veltman-1996} extends update semantics with expectation patterns — normality orderings on worlds — and two new operators:

The key insight is that defaults are dynamic: "normally p" does not eliminate worlds (like assertion does) but changes the normality ordering. This means defaults persist under information growth — learning q does not undo the expectation that p is normal.

What's here (§3) #

This module formalizes Veltman's §3: expectation states, the operators "normally", "presumably", and "might", and the key results:

What's not here (§5) #

§5 proves which inference patterns are valid for the default conditional (contraposition fails, cautious monotonicity holds, etc.). Key patterns are verified as regression tests in Phenomena/DefaultReasoning/Studies/Veltman1996.lean.

§4 (expectation frames, conditional defaults, specificity) is formalized in Frames.lean alongside this module.

Connection to existing infrastructure #

An expectation state: an information state paired with a normality ordering on worlds.

The information state tracks what is known (which worlds are compatible with the discourse so far). The normality ordering encodes expectations about what is normal (which worlds are most expected given the defaults processed so far).

Veltman's notation: σ = ⟨ε, s⟩ where ε is a preorder (expectation pattern) and s ⊆ W is the information state.

  • info : Set W

    The information state: set of worlds compatible with the discourse

  • The normality ordering (expectation pattern)

Instances For

    The initial expectation state: all worlds are possible and equally normal. No information, no expectations.

    Equations
    Instances For

      Optimal worlds in the current state: the most normal worlds among those compatible with the discourse.

      Equations
      Instances For
        def Semantics.Dynamic.Default.assertUpdate {W : Type u_1} (φ : WProp) (σ : ExpState W) :

        Assertion update: eliminate non-p-worlds, preserve pattern.

        This is the standard eliminative update from CCP.lean, lifted to expectation states. Information grows; expectations are unchanged.

        Equations
        Instances For
          def Semantics.Dynamic.Default.normallyUpdate {W : Type u_1} (φ : WProp) (σ : ExpState W) :

          "Normally p": refine the pattern so p-worlds are preferred. The information state is unchanged — we don't learn that p is true, only that p is expected.

          This is the core innovation of @cite{veltman-1996}: defaults operate on the expectation pattern, not on the information state.

          Equations
          Instances For
            noncomputable def Semantics.Dynamic.Default.presumablyTest {W : Type u_1} (φ : WProp) (σ : ExpState W) :

            "Presumably p": a test that passes iff all optimal worlds satisfy p. Like CCP.might, this is a test — it either returns the state unchanged or crashes (empties the info state).

            "Presumably p" checks whether p follows from current expectations.

            Equations
            Instances For
              noncomputable def Semantics.Dynamic.Default.mightTest {W : Type u_1} (φ : WProp) (σ : ExpState W) :

              "Might p": consistency test on the information state. Passes iff the information state has p-worlds. The expectation pattern is irrelevant — might is purely informational.

              Equations
              Instances For

                Assertion preserves the normality ordering.

                "Normally" preserves the information state.

                Assertion is eliminative: it can only shrink the info state.

                theorem Semantics.Dynamic.Default.presumably_isTest {W : Type u_1} (φ : WProp) (σ : ExpState W) :

                Presumably is a test: it either returns the state or empties info.

                theorem Semantics.Dynamic.Default.might_isTest {W : Type u_1} (φ : WProp) (σ : ExpState W) :
                (mightTest φ σ).info = σ.info (mightTest φ σ).info =

                Might is a test: it either returns the state or empties info.

                theorem Semantics.Dynamic.Default.mightTest_preserves_order {W : Type u_1} (φ : WProp) (σ : ExpState W) :
                (mightTest φ σ).order = σ.order

                Tests preserve the ordering.

                theorem Semantics.Dynamic.Default.presumably_passes {W : Type u_1} (σ : ExpState W) (φ : WProp) (hresp : σ.order.respects φ) (hconn : σ.order.connected) (hex : (w : W), w σ.info φ w) :
                presumablyTest φ σ = σ

                General presumably: if the ordering is connected, respects φ, and the info state has φ-worlds, then "presumably φ" passes.

                This is the general form of Veltman's claim that defaults create valid presumptions. The connectedness condition is essential: without it, a non-φ-world can be optimal by being incomparable with all φ-worlds (see NormalityOrder.optimal_of_respects_connected).

                theorem Semantics.Dynamic.Default.normally_presumably_succeeds {W : Type u_1} (φ : WProp) (d : Set W) (hex : (w : W), w d φ w) :
                have σ := { info := d, order := Core.Order.NormalityOrder.total }; presumablyTest φ (normallyUpdate φ σ) = normallyUpdate φ σ

                The central result: after processing "normally p", the test "presumably p" passes — provided the information state has p-worlds.

                Corollary of presumably_passes: "normally p" creates respect, and a single refinement from total preserves connectedness.

                theorem Semantics.Dynamic.Default.persistence_assert {W : Type u_1} (σ : ExpState W) (φ ψ : WProp) (h : σ.order.respects φ) :

                Persistence under assertion: if the ordering respects p (i.e., the state has accepted "normally p"), then asserting any q preserves this. Learning new facts does not undo expectations.

                @cite{veltman-1996}, Proposition 3.6(iv).

                theorem Semantics.Dynamic.Default.persistence_normally {W : Type u_1} (σ : ExpState W) (φ ψ : WProp) (h : σ.order.respects φ) :

                Persistence under further defaults: if the ordering respects p, then processing "normally q" (for any q) preserves this. Later defaults do not undo earlier ones.

                @cite{veltman-1996}, Proposition 3.6(iv).

                After "normally p", the ordering respects p. Combined with persistence, this means "normally p" creates a permanent expectation.

                theorem Semantics.Dynamic.Default.normallyUpdate_idempotent {W : Type u_1} (σ : ExpState W) (φ : WProp) (h : σ.order.respects φ) :
                normallyUpdate φ σ = σ

                Idempotency: if the state already accepts "normally φ" (the ordering respects φ), then processing "normally φ" again is a no-op.

                @cite{veltman-1996}, Proposition 3.6(ii) at the state level.

                Corollary: "normally φ; normally φ" = "normally φ" from any state.

                Commutativity: the order of defaults doesn't matter. "Normally φ; normally ψ" = "normally ψ; normally φ".

                theorem Semantics.Dynamic.Default.conflicting_defaults_le {W : Type u_1} (φ : WProp) (w v : W) :
                ((Core.Order.NormalityOrder.total.refine φ).refine fun (x : W) => ¬φ x).le w v (φ vφ w) (¬φ v¬φ w)

                Conflicting defaults produce agnosticism. After processing both "normally p" and "normally ¬p", the ordering relates worlds only when they agree on p. Both p-worlds and ¬p-worlds can be optimal, so neither "presumably p" nor "presumably ¬p" passes.

                This is the degenerate (unconditional) case of conflicting defaults. The full Nixon Diamond — where the conflict arises from conditional defaults "if Quaker then normally pacifist" and "if Republican then normally not pacifist" — requires Veltman's §4 expectation frames.

                theorem Semantics.Dynamic.Default.conflicting_defaults_iff_agree {W : Type u_1} (φ : WProp) [DecidablePred φ] (w v : W) :
                ((Core.Order.NormalityOrder.total.refine φ).refine fun (x : W) => ¬φ x).le w v (φ w φ v)

                The conflicting-default ordering is equivalent to p-agreement: w is at most as normal as v iff they agree on p.

                theorem Semantics.Dynamic.Default.compatible_defaults_optimal {W : Type u_1} (φ ψ : WProp) (d : Set W) (hφψ : ∀ (w : W), φ wψ w) (hex : (w : W), w d φ w) :

                When two defaults are compatible (p implies q), processing both in sequence makes p-worlds optimal: the expectations reinforce rather than conflict.