Documentation

Pdl.StayingInFL

Staying inside the Fischer-Ladner closure #

Here we define what it means for a Sequent to be inside the FL closure of another, and then prove several helper lemmas to show that all rules of our tableau system stay in the closure.

The main two results are LocalTableau.stays_in_FL and PdlRule.stays_in_FL.

Intuitively, we want to say that each step from (L,R,O) in a tableau to (L',R',O') stays in the FL of (L,R,O). To be precise, each side left/right stays within its own FL closure. However, this does not mean that L' must be in the FL of L, because the O may also contribute to the left part. This makes Sequent.subseteq_FL tricky to define.

Sequent Y is a component-wise subset of the FL-closure of X. Note that by component we mean left and right (and not L, R, O).

WORRY: Is using Sequent.O.L here a problem because it might not be injective? (Because it calls unload where both ⌊a⌋⌊b⌋p and ⌊a⌋⌈b⌉p become ⌈a⌉⌈b⌉p.)

Equations
Instances For
    @[simp]
    theorem testsOfProgram_in_FLb {φ : Formula} {α : Program} (φ_in : φ testsOfProgram α) (ψ : Formula) :
    φ FLb α ψ
    theorem neg_testsOfProgram_in_FLb {φ : Formula} {α : Program} (φ_in : φ testsOfProgram α) (ψ : Formula) :
    ~φ FLb α ψ
    theorem H_tests_in_FL (α : Program) (F : List Formula) (δ : List Program) (in_H : (F, δ) H α) (ψ : Formula) :
    F FLb α ψ
    theorem H_progs_in_FL (F : List Formula) (δ : List Program) (α : Program) (in_H : (F, δ) H α) (ψ : Formula) :
    δ [] → (~⌈⌈δ⌉⌉ψ) FLb α ψ
    theorem unfoldDiamond_in_FL (α : Program) (ψ : Formula) (X : List Formula) :
    X unfoldDiamond α ψφX, φ FL (αψ)
    theorem P_in_FL (α : Program) (δ : List Program) ( : TP α) (ψ : Formula) :
    δ P α → (⌈⌈δ⌉⌉ψ) FL (αψ)
    theorem unfoldBox_in_FL (α : Program) (ψ : Formula) (X : List Formula) :
    X unfoldBox α ψφX, φ FL (αψ)
    theorem OneSidedLocalRule.stays_in_FL {precond : List Formula} {ress : List (List Formula)} (rule : OneSidedLocalRule precond ress) (res : List Formula) :
    res ressres FLL precond

    Helper for LocalRule.stays_in_FL

    theorem LocalRule.stays_in_FL {X : Sequent} {B : List Sequent} (rule : LocalRule X B) (Y : Sequent) :
    Y BY.subseteq_FL X

    Helper for LocalTableau.stays_in_FL

    @[irreducible]
    theorem LocalTableau.stays_in_FL {X : Sequent} (ltX : LocalTableau X) (Y : Sequent) :
    Y endNodesOf ltXY.subseteq_FL X

    End nodes of a local tableau are FischerLadner-subsets of the root. This is used for move_inside_FL.

    theorem PdlRule.stays_in_FL {X Y : Sequent} (rule : PdlRule X Y) :

    Making a PDL rule step stays in the Fischer-Ladner closure. This is used for move_inside_FL.