Local Box Unfolding (Section 3.2) #
Diamonds: H, Y and Φ_⋄ #
Equations
Instances For
theorem
H_goes_down_prog
(α : Program)
{Fs : List Formula}
{δ : List Program}
(in_H : (Fs, δ) ∈ H α)
{γ : Program}
(in_δ : γ ∈ δ)
:
if α.isAtomic then γ = α
else if α.isStar then lengthOfProgram γ ≤ lengthOfProgram α else lengthOfProgram γ < lengthOfProgram α
theorem
existsDiamondH
{W✝ : Type}
{M : KripkeModel W✝}
{γ : Program}
{v w : W✝}
(v_γ_w : relate M γ v w)
:
Loaded Diamonds (Section 3.3) #
The Option
is used here because unfolding of tests can lead to free nodes.
Loaded unfolding for ~'⌊α⌋(χ : LoadFormula)
Equations
Instances For
Equations
- pairUnload (xs, none) = xs
- pairUnload (xs, some nlf) = xs ∪ [negUnload nlf]
Instances For
theorem
unfoldDiamondLoaded_eq
(α : Program)
(χ : LoadFormula)
:
List.map pairUnload (unfoldDiamondLoaded α χ) = unfoldDiamond α χ.unload
theorem
unfoldDiamondLoaded'_eq
(α : Program)
(φ : Formula)
:
List.map pairUnload (unfoldDiamondLoaded' α φ) = unfoldDiamond α φ