Visser (1998): Contexts in Dynamic Predicate Logic #
A context in the type-theoretic sense — a declaration of variables — for
DPL: [Vis98]'s triple ⟨I, B, O⟩ of input set, block set, and
output set, typing which variables a relation reads, cuts, and writes.
The paper's metatheory of these types, over the semantic DPL.Rel
substrate.
Main results #
Contextwith1,*, and≤: the contexts form a monoid and the information order is a partial order (Theorem 3.3).HasContext R c:cis a context forR(Definition 3.4), withhasContext_iff_eqrecovering the paper's equational form of the definition andhasContext_test_iffcharacterizing thetest V-typed relations as theV-invariant tests (Update.IsTest).HasContext.mono: the order is sound for the typing —c ≤ dtypes more relations (Theorem 3.5(1)).HasContext.patch,HasContext.patch_eqOn,HasContext.patch_unique: Lemma 3.7 — existence, transfer, and uniqueness of the patched output.HasContext.conj,HasContext.impl,HasContext.exists_: composition, implication, and existential typing (Theorems 3.8–3.9 and Definition 3.12'sc_{∃v}), from the typed generatorshasContext_atomandhasContext_reset.DPLExpressible.hasContext: every relation generated by composition from resets and conditions is typed by some context — the language-free soundness result (Definition 3.10, Theorem 3.11).
TODO #
- The converse of Theorem 3.5 (
|D| ≥ 2) and the most informative context (the paper's Appendix A), with the partial meet of contexts — the infimum in the information order. - §§4–5's Switching Property characterization of the DPL-expressible relations (the completeness direction needs the syntax stratum), and §6's meet typing.
Contexts (Definition 3.1) #
A DPL-context (Definition 3.1): input set I (variables the incoming
assignment is read at), block set B (variables whose input-output link
is cut), output set O (variables the outgoing assignment is constrained
at), coherent in the sense I ∪ B = O ∪ B.
- I : Finset ℕ
The input set.
- B : Finset ℕ
The block set: the barrier between past and future.
- O : Finset ℕ
The output set.
Coherence: off the blocks, inputs and outputs coincide.
Instances For
Equations
- Visser1998.Context.instOne = { one := { I := ∅, B := ∅, O := ∅, coh := Visser1998.Context.instOne._proof_1 } }
Context composition (Definition 3.1):
⟨I,B,O⟩ * ⟨I',B',O'⟩ = ⟨I ∪ (I'∖B), B ∪ B', (O∖B') ∪ O'⟩.
The contexts form a monoid (Theorem 3.3).
Equations
- One or more equations did not get rendered due to their size.
The information order on contexts (Definition 3.1): more informative contexts read, write, and block more — with new blocks confined to variables the larger context both reads and writes.
The information order is a partial order (Theorem 3.3).
Equations
- One or more equations did not get rendered due to their size.
The test context at V: reads and writes V, blocks nothing.
Conditions live here (hasContext_atom), and implication contexts are tests
(Context.impl).
Equations
- Visser1998.Context.test V = { I := V, B := ∅, O := V, coh := ⋯ }
Instances For
The implication context (Definition 3.1): implications are tests reading the combined inputs.
Equations
- c.impl d = Visser1998.Context.test (c * d).I
Instances For
c-relations (Definition 3.4) #
The paper's equational form of Definition 3.4.
The test V-typed relations are exactly the V-invariant tests —
Definition 2.2's ⟨V⟩-conditions (noted after Definition 3.4).
The order is sound for the typing (Theorem 3.5) #
Theorem 3.5(1): larger contexts type more relations —
c ≤ d and R a c-relation make R a d-relation.
The unique-output lemma (Lemma 3.7) #
Lemma 3.7, transfer: the patch agrees with g at the blocks and
wherever the inputs agree.
Lemma 3.7, existence: if f' agrees with f on the inputs and
f R g, then R relates f' to the patch of f' by g at the
blocks.
Lemma 3.7, uniqueness: the patch is the only output over f'
agreeing with g on the blocks.
Composition and implication typing (Theorems 3.8–3.9) #
Theorem 3.8: composition of a c-relation and a d-relation is a
c * d-relation.
Theorem 3.9: DPL implication of a c-relation and a d-relation is
a (c → d)-relation.
The DPL generators, typed #
A condition depending only on V is a Context.test V-relation as a
test (the atomic case of the paper's semantic Theorem 3.13).
The reset is typed at ⟨∅, {x}, ∅⟩ — Definition 3.12's c_{∃v}: it
reads nothing, constrains no output, and blocks x.
The existential typing (Definition 3.12's c_{∃v} • c_φ): blocking
x before a c-relation types ∃x φ.
The language-free soundness result (Theorem 3.11) #
The DPL-expressible relations (Definition 3.10): generated by composition from resets and finitely restricted conditions.
- atom {E : Type u_1} (V : Finset ℕ) (p : (ℕ → E) → Prop) (hp : ∀ ⦃f f' : ℕ → E⦄, Set.EqOn f f' ↑V → p f → p f') : DPLExpressible (DPL.Rel.atom p)
- reset {E : Type u_1} (x : ℕ) : DPLExpressible (DPL.reset x)
- conj {E : Type u_1} {R S : DPL.Rel E} : DPLExpressible R → DPLExpressible S → DPLExpressible (R.conj S)
Instances For
Theorem 3.11: every DPL-expressible relation is an IBO-relation — typed by some context.