Evaluating Q-formulas, the witness distance, and basic nodes #
This file collects the notions needed for Lemmas 10.6, 10.7 and 10.8 in
Pdl.ClusterSatDown:
QFormula.evalQ, the evaluation of a Q-formula with an assignment for the internal variables, together withQFormula.evalQ_gfp_unfold, the unfolding of the fixpoint used at a companion node,Sequent.loadedSplitand friends, which read off the loaded formula¬⌊δ⃗⌋ψof a sequent,witDist, the witness distancewd_M(v,x)of the proof of Lemma 10.7, andQuasiTab.BasicBetween, the paper's "there is a basic node betweenxandz".
Internal variables #
The pre-interpolants ι_x are QFormulas, i.e. they may contain internal variables q_z.
The proof of Lemma 10.7 modifies the valuation of the internal variable q_x at a
companion node x, keeping the relational structure of the model fixed. Instead of
substituting a formula for q_x (and then appealing to the substitution lemma) we
therefore evaluate a Q-formula directly with respect to an assignment
g : Var → W → Prop of the internal variables. Changing the assignment leaves the model,
and hence all distances, untouched, which is exactly the "M and M' have the same
relational structure" of the paper.
Evaluating Q-formulas with an assignment for the internal variables #
Evaluate a Q-formula in a model M where the internal variables are interpreted by
the assignment g.
Equations
- QFormula.evalQ M g x✝ (QFormula.fma ψ) = evaluate M x✝ ψ
- QFormula.evalQ M g x✝ (QFormula.var q) = g q x✝
- QFormula.evalQ M g x✝ (ι1.and ι2) = (QFormula.evalQ M g x✝ ι1 ∧ QFormula.evalQ M g x✝ ι2)
- QFormula.evalQ M g x✝ (QFormula.boxes as ι) = ∀ (u : W), relateSeq M as x✝ u → QFormula.evalQ M g u ι
Instances For
Evaluating a Q-formula with the assignment given by a substitution is the same as evaluating the substituted formula.
Unfolding the fixpoint of the companion case #
The pre-interpolant of a companion node x is gfp x ι for the pre-interpolant ι of
its child. Interpreting the internal variable q_x by gfp x ι itself turns gfp x ι
into ι; this is the semantic counterpart of the paper's observation that
ι_x ≡ ι_y[q_x := ι_x].
The loaded formula of a sequent #
For a node x of the quasi-tableau the paper writes the unique loaded formula of Δ_x as
¬⌊δ_x⌋ψ_x with ψ_x unloaded. Here δ_x and ψ_x are Sequent.loadedProgs and
Sequent.loadedFma, read off with LoadFormula.split.
The loaded formula of a sequent, split into its list of programs and its final,
unloaded formula. For a free sequent we return ([], ⊥), which is never used.
Equations
Instances For
The programs δ_x of the loaded formula ¬⌊δ_x⌋ψ_x.
Equations
- X.loadedProgs = X.loadedSplit.1
Instances For
The unloaded formula ψ_x of the loaded formula ¬⌊δ_x⌋ψ_x.
Equations
- X.loadedFma = X.loadedSplit.2
Instances For
The sequent has its loaded formula on the right, as all Δ ∈ Λ₂[C] do.
Equations
- X.isRightLoaded = ∃ (nlf : NegLoadFormula), X.O = some (Sum.inr nlf)
Instances For
Unloading a loaded formula gives the boxes of its split.
If the loaded formula of a sequent is on the right then the right component contains
its unloading ¬⌈⌈δ⌉⌉ψ.
The witness distance #
For a state v and a node x of the quasi-tableau, witDist M v Δ_x is the least
δ_x-distance from v to a state satisfying ¬ψ_x, i.e. the paper's wd_M(v,x) in the
case where M, v ⊨ Δ_x, ι_x. (In the other case the paper sets wd_M(v,x) := ∞; we do
not need that, because we only ever use the value under that assumption.)
Note that witDist does not depend on the valuation of the internal variables — this is
the paper's observation that M and M' have the same relational structure.
Basic nodes between two nodes of the quasi-tableau #
The paper's "there is a basic node between x and z" means: a node of type 3 with a
basic label on the path from x to z. Requiring type 3 is harmless (the label of a node
of type 1 or 2 is the label of the node of type 3 below it) and it makes the property
invariant under passing from a node of type 1 or 2 to its unique child.
BasicBetween only grows when we move the left end towards the root.
If the left end x is not itself a basic node of type 3 then any basic node between
x and z is also between the child of x on the path to z and z.