DPL semantic type: relation between assignments.
⟦φ⟧(g, h) means: starting from assignment g, the formula φ can update to assignment h.
Equations
- Semantics.Dynamic.DPL.DPLRel E = ((ℕ → E) → (ℕ → E) → Prop)
Instances For
Atomic predicate in DPL: tests without changing assignment.
Equations
- Semantics.Dynamic.DPL.DPLRel.atom p g h = (g = h ∧ p g)
Instances For
DPL existential: random assignment then scope.
⟦∃x.φ⟧(g, h) iff ∃d. ⟦φ⟧(g[x↦d], h)
Equations
Instances For
DPL does not validate DNE for anaphora.
¬¬∃x.φ is not equivalent to ∃x.φ because negation resets the output assignment:
neg(neg(exists_ x φ)) g h forces g = h (it's a test), while exists_ x φ
can change the assignment to export a witness.
Requires Nontrivial E (at least 2 elements): for Unit, all assignments are
identical and DNE holds vacuously.
Scope extension theorem: ∃x(φ ∧ ψ) ≡ (∃xφ) ∧ ψ when x not free in ψ.
"Not free in ψ" means ψ is invariant under reassigning x in both input and output assignments. Under this condition, the existential can scope out past conjunction.
TODO: Prove by extensionality and reordering existential quantifiers.