The interpolant of a cluster root and its vocabulary #
This file continues the development of Pdl.Interpolation.PreInterpolant
and Pdl.Interpolation.ClusterFacts with:
- Definition 9.20
LoadedCluster.itp: the interpolantθ_rof the rootrof the clusterC, and - Lemma 10.1
iitp_vocandiitp_vars: the vocabulary of the pre-interpolants.
Definition 10.2 and Lemma 10.3 are in Pdl.Interpolation.ClusterRho.
Two small vocabulary lemmas #
The vocabulary of a Q-formula #
The pre-interpolants of Definition 9.18 are QFormulas, i.e. they contain the internal
variables q_x as a separate constructor. Their vocabulary therefore splits into two
parts: the ordinary vocabulary QFormula.voc, made up of the proposition letters and
atomic programs occurring in the formula, and the internal variables QFormula.vars.
Lemma 10.1 below bounds the two parts separately, which is exactly the statement
voc(ι_x) ⊆ (voc(Γ₁) ∩ voc(Γ₂)) ∪ { q_{c(z)} | z ∈ cycs(x) } of the paper.
The ordinary vocabulary of a Q-formula, i.e. the proposition letters and atomic
programs occurring in it. The internal variables are not included; they are given by
QFormula.vars.
Equations
Instances For
The vocabulary of conjunctions, of Spl and of the fixpoint gfp #
The fixpoint used at companion nodes does not add anything to the vocabulary.
The fixpoint used at companion nodes does not add internal variables.
More facts about the nodes of a quasi-tableau #
The companion of a node is a proper ancestor of it.
A repeat leaf is one of its own cycles.
A generalisation of QuasiTab.cycs_subset_of_qedge: a cycle of a child y of x is a
cycle of x, unless its companion is x itself.
Two more unfolding lemmas for Definition 9.18 #
These are the two cases where the data type allows a node without children although the definition of the quasi-tableau provides one; see Remark 9.9.
Definition 9.20: the interpolant of the root of the cluster #
Def 9.20: the interpolant θ_r of the root r of the cluster C.
If the left component Γ₁ of the root is empty then θ_r := ⊤ (see Remark 9.5),
and otherwise θ_r is the pre-interpolant ι_{r_Q} of the root of the quasi-tableau.
The latter is a QFormula, i.e. it may still contain internal variables; by Lemma 10.1
(iitp_vars) it does not, so it does not matter which substitution we use to read it as a
Formula, and we simply substitute ⊤.
Equations
Instances For
The vocabulary of θ_Δ is inside the joint vocabulary of the root of the cluster.
This is Lemma 9.14 (c) together with vocabulary preservation.
Lemma 10.1: the vocabulary of the pre-interpolants #
The conjuncts in the case k(x) = 3 with Δ_x not basic are the pre-interpolants of
the children of x.
Lemma 10.1: the vocabulary of the pre-interpolant of a node x of the quasi-tableau
consists of the joint vocabulary of the root of the cluster and of internal variables
q_{c(z)} for cycles z ∈ cycs(x).
Here the two parts are stated separately: voc(ι_x) ⊆ voc(Γ₁) ∩ voc(Γ₂) for the ordinary
vocabulary, and the internal variables of ι_x are companions of elements of cycs(x).
The hypothesis Γ₁ ≠ ∅ is needed: for Γ₁ = ∅ the claim would say that ι_x has no
ordinary vocabulary at all, which fails at nodes of type 3 with a basic label. Definition
9.20 covers that case separately, see Remark 9.19.
Lemma 10.1, first part: for every node x of the quasi-tableau, the ordinary
vocabulary of the pre-interpolant ι_x is inside voc(Γ₁) ∩ voc(Γ₂).
See LoadedCluster.iitp_voc_aux for the hypothesis Γ₁ ≠ ∅.
Lemma 10.1, second part: the internal variables occurring in the pre-interpolant ι_x
are the companions q_{c(z)} of cycles z ∈ cycs(x).
The pre-interpolant of the root of the quasi-tableau contains no internal variables,
because cycs(r_Q) = ∅ (Lemma 9.12 (b)).
Corollary of Lemma 10.1: the interpolant of the root of the cluster only uses the
joint vocabulary of Γ₁ and Γ₂.