Soundness (Section 6) #
Soundness of the PDL rules #
The PDL rules are sound.
Companion, cEdge, etc. #
To get the companion of a LoadedPathRepeat
we rewind the path with the lpr value.
The succ
is there because the lpr values are indices of the history starting with 0, but
PathIn.rewind 0
would do nothing.
Equations
- companionOf s lpr x✝ = s.rewind (Fin.cast ⋯ ↑lpr).succ
Instances For
s ♥ t
means s
is a LoadedPathRepeat
and the companionOf s
is t
.
Equations
- s ♥ t = ∃ (lpr : LoadedPathRepeat (tabAt s).fst (tabAt s).snd.fst) (h : (tabAt s).snd.snd = Tableau.lrep lpr), t = companionOf s lpr h
Instances For
Equations
- «term_♥_» = Lean.ParserDescr.trailingNode `«term_♥_» 1022 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ♥ ") (Lean.ParserDescr.cat `term 1023))
Instances For
Not using ♥ here because we need to refer to the lpr
.
Equations
- «term_◃_» = Lean.ParserDescr.trailingNode `«term_◃_» 1022 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ◃ ") (Lean.ParserDescr.cat `term 1023))
Instances For
Equations
- «term_◃⁺_» = Lean.ParserDescr.trailingNode `«term_◃⁺_» 1022 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ◃⁺ ") (Lean.ParserDescr.cat `term 1023))
Instances For
Equations
- «term_◃*_» = Lean.ParserDescr.trailingNode `«term_◃*_» 1022 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ◃* ") (Lean.ParserDescr.cat `term 1023))
Instances For
≡ᶜ and Clusters #
Equations
- «term_≡ᶜ_» = Lean.ParserDescr.trailingNode `«term_≡ᶜ_» 1022 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≡ᶜ ") (Lean.ParserDescr.cat `term 1023))
Instances For
We have before s t
iff there is a path from s to t but not from t to s.
This means the cluster of s
comes before the cluster of t
in tab
.
NB: The notes use ◃* here but we use ◃⁺. The definitions are equivalent.
Instances For
s <ᶜ t
means there is a ◃-path from s
to t
but not from t
to s
.
This means t
is simpler to deal with first.
Equations
- «term_<ᶜ_» = Lean.ParserDescr.trailingNode `«term_<ᶜ_» 1022 1023 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <ᶜ ") (Lean.ParserDescr.cat `term 1023))
Instances For
The <ᶜ
relation is transitive.
The transitive closure of <ᶜ
(which in fact is the same as <ᶜ
) is irreflexive.
The before
relation in a tableau is well-founded.
The before
relation in a tableau is converse well-founded.
Soundness #
Specific case of loadedDiamondPaths
for Tableau.pdl
.
Key helper lemma to show the soundness of loading and repeats. Intutively, it says that a tableau starting with a loaded diamond can immitate all possible ways in which a Kripke model can satisfy that diamond.
The lemma statement differs slightly from the paper version:
- Our paths cannot stop "inside" a
LocalTableau
and they may take apart more than one loaded box, hence we need access to all of the boxesαs
in front of the normal formulaφ
. - We do not say that the from
t
tos
has to be satisfiable. - We only demand
s
to be satisfiable in the free case. For the other disjunct this is implied.
The paper proof uses three nested induction levels, one of them only in the star case.
Instead of that here we use recursive calls and show that they terminate via the lexicographic order
on the ℕ∞ × Nat × Nat
triple ⟨distance_list M v w (α :: αs), lengthOfProgram α, t.length⟩
.
The star case is then actually handled just like the other connectives.