Default Reasoning in Update Semantics #
[Vel96] extends update semantics with expectation patterns — normality orderings on worlds — and two new operators:
- Normally p: refines the expectation pattern so p-worlds are preferred
- Presumably p: a test that passes iff all optimal worlds satisfy p
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:
- Defaults create expectations (
normally_creates_respect) - Defaults persist under further updates (
persistence_assert,persistence_normally) - "Normally p; presumably p" succeeds (
normally_presumably_succeeds) - Conflicting defaults yield agnosticism (
conflicting_defaults_iff_agree) - Compatible defaults reinforce (
compatible_defaults_optimal) - Promotion is idempotent and commutative (
promote_respects_idempotent,promote_comm)
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
Studies/Veltman1996.lean.
§4 (expectation frames, conditional defaults, specificity) is
formalized in Studies/Veltman1996.lean.
Connection to existing infrastructure #
Basic.lean: Veltman's base language (§2) — states, updates, tests, might as consistency test — is formalized there. This module adds the default layer (§3).
BeliefRevision.lean:
PreferentialConsequence(System P) andPlausibilityOrderformalize the static characterization of default reasoning. Veltman's system is the dynamic realization: the default consequence relation it induces validates System P.Core/Order/Normality.lean: The normality ordering (mathlib
Preorder W) and therefineoperation are defined there as shared infrastructure. This module buildsExpState(expectation states) on top of that.
Expectation states #
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
- order : Preorder W
The normality ordering (expectation pattern)
Instances For
The initial expectation state: all worlds are possible and equally normal. No information, no expectations.
Equations
- UpdateSemantics.Default.ExpState.init = { info := Set.univ, order := Core.Order.Normality.total }
Instances For
Optimal worlds in the current state: the most normal worlds among those compatible with the discourse.
Equations
- σ.optimal = Core.Order.Normality.optimal σ.order σ.info
Instances For
Update operations #
Assertion update (Veltman's factual update): eliminate
non-φ-worlds, preserve the pattern. Information grows; expectations
are unchanged. This is [Por18]'s +-update on the context
set, and the standard eliminative update from Update.lean
lifted to expectation states.
Instances For
Promotion update (Veltman's normally φ): refine the pattern so φ-worlds are preferred. The information state is unchanged — we don't learn that φ is true, only that φ is expected.
This is the core innovation of [Vel96]: defaults operate on
the expectation pattern, not on the information state. Read at the
discourse level it is [Por18]'s ⋆-update (the To-Do-List
update of [Por04]).
Instances For
"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
- UpdateSemantics.Default.presumablyTest φ σ = if ∀ w ∈ σ.optimal, φ w then σ else { info := ∅, order := σ.order }
Instances For
"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
- UpdateSemantics.Default.mightTest φ σ = if ∃ w ∈ σ.info, φ w then σ else { info := ∅, order := σ.order }
Instances For
Basic properties #
Refinement order on expectation states: more constrained ≤ less
constrained, componentwise — finer ≤ coarser, matching the Setoid
convention. (NB [Vel96] orients his ≤ the other way, weaker
below stronger; the content is the same.) Both updates are
deflationary, monotone, and idempotent for this order, and
acceptance — [Vel96]'s σ ⊩ φ iff σ[φ] = σ — is the
fixpoint condition σ ≤ σ[φ].
Equations
- One or more equations did not get rendered due to their size.
Membership in the information state after a sequence of assertions: the input's information, filtered by every asserted proposition.
The ordering after a sequence of promotions: the input's ordering, refined by the criterion preorder of every promoted proposition.
Acceptance fixpoint for promotion ([Vel96]: e is a
default in ε iff ε ∘ e = ε, his Def 4.2): the input refines
its own promotion iff the ordering already respects φ. This is the
support notion for the preferential component — "φ is already on
the To-Do List" — distinct from truth at the best worlds.
Presumably is a test: it either returns the state or empties info.
"Normally p; presumably p" succeeds #
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 Normality.optimal_of_respects_connected).
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.
Persistence #
Persistence under assertion: asserting any ψ preserves respect
for φ — learning new facts does not undo expectations. Immediate,
since assert leaves the ordering untouched (assert_order).
[Vel96], Proposition 3.6(iv).
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.
[Vel96], Proposition 3.6(iv).
After "normally p", the ordering respects p. Combined with persistence, this means "normally p" creates a permanent expectation.
Idempotency and commutativity #
Idempotency: if the state already accepts "normally φ" (the ordering respects φ), then processing "normally φ" again is a no-op.
[Vel96], Proposition 3.6(ii) at the state level.
Conflicting defaults #
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.
The conflicting-default ordering is equivalent to p-agreement: w is at most as normal as v iff they agree on p.
Compatible defaults #
When two defaults are compatible (p implies q), processing both in sequence makes p-worlds optimal: the expectations reinforce rather than conflict.