Local Diamond Unfolding (Section 3.2 and 3.3) #
Diamonds: Dset, Y and Φ_⋄ #
Unfold a given program into combinations of test formulas and lists of programs, assuming the program is used inside a diamond.
Equations
Instances For
theorem
Dset_goes_down_prog
(α : Program)
{Fs : List Formula}
{δ : List Program}
(in_D : (Fs, δ) ∈ Dset α)
{γ : Program}
(in_δ : γ ∈ δ)
:
if α.isAtomic then γ = α
else if α.isStar then lengthOfProgram γ ≤ lengthOfProgram α else lengthOfProgram γ < lengthOfProgram α
This is used by PreState.loadedExists
Loaded Diamonds (Section 3.3) #
The Option is used here because unfolding of tests can lead to free nodes.
Loaded unfolding for ~'⌊α⌋(χ : LoadFormula)