Local Box Unfolding (Section 3.1) #
Preparation for Boxes: Test Profiles #
Equations
All test profiles are in the list of all test profiles. Thanks to Floris van Doorn https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/List.20of.20.28provably.29.20all.20functions.20from.20given.20List.20to.20Bool
σ^ℓ
Equations
- PDL.signature α ℓ = PDL.con (List.map (fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram α }) => if ℓ τ = true then ↑τ else (↑τ).neg) (PDL.testsOfProgram α).attach)
Instances For
A signature assigns each test exactly the truth value recorded by its profile.
This is currently unused.
Boxes: F, P, Bset and unfoldBox #
Note: In F, P and Bset we use lists not sets, to eventually make formulas.
The test constraints produced by box unfolding under a test profile.
Equations
- PDL.F (PDL.Program.atom_prog a) x_2 = ∅
- PDL.F (PDL.Program.test τ) ℓ = if ℓ ⟨τ, ⋯⟩ = true then ∅ else [τ.neg]
- PDL.F (α.union β) ℓ = (PDL.F α fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram α }) => ℓ ⟨↑τ, ⋯⟩) ∪ PDL.F β fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram β }) => ℓ ⟨↑τ, ⋯⟩
- PDL.F (α.sequence β) ℓ = (PDL.F α fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram α }) => ℓ ⟨↑τ, ⋯⟩) ∪ PDL.F β fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram β }) => ℓ ⟨↑τ, ⋯⟩
- PDL.F α.star ℓ = PDL.F α ℓ
Instances For
The residual program sequences produced by box unfolding under a test profile.
Equations
- One or more equations did not get rendered due to their size.
- PDL.P (PDL.Program.atom_prog a) x_2 = [[PDL.Program.atom_prog a]]
- PDL.P (PDL.Program.test τ) ℓ = if ℓ ⟨τ, ⋯⟩ = true then [[]] else ∅
- PDL.P (α.union β) ℓ = (PDL.P α fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram α }) => ℓ ⟨↑τ, ⋯⟩) ∪ PDL.P β fun (τ : { τ : PDL.Formula // τ ∈ PDL.testsOfProgram β }) => ℓ ⟨↑τ, ⋯⟩
- PDL.P α.star ℓ = [[]] ∪ List.map (fun (as : List PDL.Program) => as ++ [α.star]) (List.filter (fun (x : List PDL.Program) => x != []) (PDL.P α ℓ))
Instances For
Depending on α we know what can occur inside δ ∈ P α ℓ and thus later in unfoldBox.
Proven from boxHelperTermination.
Where formulas in the unfolding can come from.
The article also says φ ∈ fischerLadner [⌈α⌉ψ] which we prove later in unfoldBox_in_FL.
A helper theorem about Bset and signature.
Note that the paper only states the third conjunct.
Show "suffices" part outside, to use localBoxTruth for star case in localBoxTruthI.
Induction claim for localBoxTruth.