Charlow (2019): Where Is the Destructive Update Problem? #
Destructive update is not empirically problematic: assignment modification is shared between static and dynamic systems. The static/dynamic divide reduces to a single operator ↑ determining whether modified assignments are retained.
Truth at an assignment: K True at g ⟺ ∃h. K g h (Charlow's (7)).
Equations
- Charlow2019.trueAt K g = ∃ (h : ℕ → E), K g h
Instances For
Destructive update preserves truth conditions (§4).
Static ↑: evaluates truth, discards modified assignment (Table 1, row 1).
Equations
- Charlow2019.staticExists x body = DPL.Rel.atom fun (g : ℕ → E) => ∃ (d : E), body (Function.update g x d)
Instances For
Dynamic ↑: retains modified assignment (Table 1, row 2).
Equations
- Charlow2019.dynamicExists x body = DPL.Rel.exists_ x (DPL.Rel.atom fun (g : ℕ → E) => body g)
Instances For
Static existential is a test: output = input.
Dynamic existential can change the assignment.
Static and dynamic agree on truth conditions (§4, §7).
Reachable: h is reachable from g via some DPL formula (Charlow's (24)).
Equations
- Charlow2019.reachable g h = ∃ (φ : DPL.Rel E), φ g h
Instances For
Reachability is reflexive.
Reachability is transitive (via dynamic conjunction).
Antisymmetry fails: distinct assignments can be mutually reachable (§8).
Charlow's context type: a set of world-assignment pairs.
Equations
- Charlow2019.State W E = Set (W × Assignment E)
Instances For
Context change potential over Charlow's contexts.
Equations
- Charlow2019.State.CCP W E = DynamicSemantics.CCP (W × Assignment E)
Instances For
Non-distributive negation (28): removes from s points that survive φ.
Equations
- Charlow2019.stateNeg φ s = {i : W × Assignment E | i ∈ s ∧ i ∉ φ s}
Instances For
Distributive negation (29): tests each point individually.
Equations
- Charlow2019.stateDistNeg φ s = {i : W × Assignment E | i ∈ s ∧ φ {i} = ∅}
Instances For
Partition by assignment: groups points sharing the same assignment (Charlow's (35)).
Equations
- Charlow2019.partByAssignment s = {t : Charlow2019.State W E | t ⊆ s ∧ Set.Nonempty t ∧ ∀ i ∈ t, ∀ j ∈ t, i.2 = j.2}
Instances For
Anaphorically distributive: processes each assignment-group separately (Charlow's (39)).
Equations
- Charlow2019.anaphoricallyDistributive φ = ∀ (s : Set (W × Assignment E)), φ s = {p : W × Assignment E | ∃ t ∈ Charlow2019.partByAssignment s, p ∈ φ t}
Instances For
Every distributive meaning is anaphorically distributive.
Charlow's ↑ (liftPW) promotes a pointwise Update (Assignment E)
(Dynamic Ty2, [Mus96]) to a context-level State.CCP W E; his ↓
(lowerPW) extracts a pointwise relation back. Lifted meanings are always
distributive (liftPW_preserves_distributive), so pointwise meanings can
never produce irreducibly context-level effects — cumulative readings
require non-distributive updates, which live only in State.CCP.
Charlow's ↑: lift a pointwise Update to an update on states.
liftPW D s = {⟨w, h⟩ | ∃ ⟨w, g⟩ ∈ s, D g h}
Each world-assignment pair in the output comes from applying D to some
input assignment in s, preserving the world.
Equations
- Charlow2019.liftPW D s = {p : W × Assignment E | ∃ q ∈ s, p.1 = q.1 ∧ D q.2 p.2}
Instances For
Charlow's ↓: extract a pointwise Update from a state update by evaluating K on a singleton context at an arbitrary world.
Equations
- Charlow2019.lowerPW K w₀ g h = ((w₀, h) ∈ K {(w₀, g)})
Instances For
Round-trip identity: lowering a lifted Update recovers the original.
↓(↑D) = D because the singleton context {(w₀, g)} passes through ↑
with only (w₀, g) as witness, leaving exactly the pairs h with D g h.
↑ is injective: distinct DRSs yield distinct state updates.
Follows from the round-trip: D = ↓(↑D), so ↑D₁ = ↑D₂ implies
D₁ = ↓(↑D₁) = ↓(↑D₂) = D₂. Requires W to be nonempty for the
lowering witness world.
Lifted pointwise DRSs are always distributive.
↑D processes each element of the input state independently — the output
at p depends only on whether some q ∈ s satisfies D q.2 p.2 with
matching world p.1 = q.1. This is exactly the singleton decomposition
(↑D)(s) = ⋃_{i∈s} (↑D)({i}), which is the definition of distributivity.
↑↓ ≠ id: there exist irreducibly update-theoretic meanings K such that liftPW (lowerPW K w₀) ≠ K.
The simplest witness is K _ = {(w₀, g₀)} (constant function ignoring
input). Then K ∅ = {(w₀, g₀)}, but liftPW (lowerPW K w₀) ∅ = ∅
because ↑ has no input pairs to draw.
Requires Nonempty W and Nonempty E to construct the witness.
Charlow's State W E = Set (W × Assignment E) as the nondeterministic
(M = Set) instance of the fibered lookup interface. The lookup at
variable v at world w yields { g v | (w, g) ∈ s } — one alternative
per assignment containing w. The empty set is the falsifier (no
assignment defines v at w): Charlow rejects a value-level ⋆, so
compositional negation is preserved by the empty-set convention. The
fibered projection is lossy — the native joint state records which worlds
pair with which assignments beyond what a single (v, w) query reveals;
the supportCollapse bridge below collapses genuinely-uncertain states.
Equations
- Charlow2019.instCharlowHasFiberedLookup W E = { iLookup := fun (s : Charlow2019.State W E) (v : ℕ) (w : W) => {e : E | ∃ (g : Assignment E), (w, g) ∈ s ∧ g v = e} }
Hofmann ↪ Charlow: lift an ICDRT.Assignment to a Charlow state on
the worlds where every vars-listed variable has a non-⋆ referent.
At such worlds the resulting state has exactly one alternative — the
assignment forced by Hofmann's values on vars (free elsewhere).
At ⋆-worlds for any vars-listed variable, the world contributes no
alternatives.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Charlow ↠ Hofmann: collapse a Charlow state to a Hofmann-style
assignment by "agreement-or-⋆". At each world, if all alternatives
agree on v's value, that's v's value; otherwise ⋆. Propositional
drefs are dropped (Charlow has no propositional-dref structure to
preserve). The reverse-image singletonLift ∘ supportCollapse loses
information whenever the Charlow state has genuine uncertainty.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bridge / section-retraction: on the deterministic image,
supportCollapse ∘ singletonLift = id for individual variables in the
lift's vars set, at worlds in the lift's worlds set, where every
listed variable has a non-⋆ referent. (Outside this domain the maps
behave differently — singletonLift produces an empty state at ⋆-worlds,
and supportCollapse falls through to ⋆.)
This is a section/retraction relationship in the spirit of
Function.LeftInverse, witnessing that singletonLift injects Hofmann
states into Charlow states without information loss on its image. The
reverse direction (singletonLift ∘ supportCollapse) is not the
identity — collapsing genuine Charlow uncertainty to ⋆ and then
re-singleton-lifting forgets which alternatives were possible.
Charlow's State W E = Set (W × Assignment E) deliberately carries
no propositional-dref structure, so the bathroom-sentence blocking
theorem (counterfactual_blocks_veridical, ICDRT/Basic.lean) — whose
every hypothesis is about propositional drefs — has no analogue here.
The same anaphora-under-negation phenomenon ("There isn't a bathroom.
#It is upstairs.") is handled by alternative-set filtering — a
negative antecedent yields an empty alternative set, which by the
empty-set falsifier makes downstream lookup empty.
Static existential truth = cylindrification.
Charlow's staticExists x body tests whether ∃ d, body(g[x↦d]),
which is exactly cylindrify x body.
Dynamic existential truth = cylindrification (same truth conditions).