Local Tableaux (Section 3) #
Local tableau for X, maximal by definition.
- byLocalRule {X : Sequent} (lra : LocalRuleApp) (X_def : X = lra.X) (next : (Y : Sequent) → Y ∈ lra.C → LocalTableau Y) : LocalTableau X
- sim {X : Sequent} : X.basic → LocalTableau X
Instances For
Equations
- One or more equations did not get rendered due to their size.
Termination of LocalTableau #
The local measure we use together with D-M to show that LocalTableau are finite.
Note that different from the paper here we also add lmOfFormula (~φ) in the ~⌈α⌉φ case.
This is needed to get lmOfFormula_lt_dia_of_nonAtom.
Equations
- lmOfFormula Formula.bottom = 0
- lmOfFormula (~Formula.bottom) = 0
- lmOfFormula (·a) = 0
- lmOfFormula (~·a) = 0
- lmOfFormula (~~φ) = 1 + lmOfFormula φ
- lmOfFormula (φ ⋀ ψ) = 1 + lmOfFormula φ + lmOfFormula ψ
- lmOfFormula (~(φ ⋀ ψ)) = 1 + lmOfFormula (~φ) + lmOfFormula (~ψ)
- lmOfFormula (⌈·a⌉a_1) = 0
- lmOfFormula (~⌈·a⌉a_1) = 0
- lmOfFormula (⌈α⌉φ) = 1 + lmOfFormula φ + (List.map (fun (τ : { x : Formula // x ∈ testsOfProgram α }) => lmOfFormula (~↑τ)) (testsOfProgram α).attach).sum
- lmOfFormula (~⌈α⌉φ) = 1 + lmOfFormula (~φ) + (List.map (fun (τ : { x : Formula // x ∈ testsOfProgram α }) => lmOfFormula ↑τ) (testsOfProgram α).attach).sum
Instances For
Equations
- lt_Sequent X Y = (node_to_multiset X).IsDershowitzMannaLT (node_to_multiset Y)
Instances For
Equations
This is a helper for measureProp parts (d) and (e).
If each element of a list X is either a, belongs to a list bs, or has f value 0,
then the sum of f over X.toFinset is at most f a + (bs.map f).sum.
This is a summary lemma and not used as a whole anywhere.
Note that parts (d) and (e) are about the measure sum over X and not single formulas, so
for example (e) is not the same as unfoldDiamond.decreases_lmOf_nonAtomic.
Also note that we use List.toFinset here to ignore duplicates in the list X.
Equations
- One or more equations did not get rendered due to their size.
- endNodesOf (LocalTableau.sim a) = [x✝]
Instances For
An open local tableau has at least one end node.
Equations
- OpenLocalTableau X = { lt : LocalTableau X // endNodesOf lt ≠ [] }
Instances For
Equations
- instDecidableEqOpenLocalTableau X a b = a.instDecidableEq b
Helper functions, relating end nodes and children #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Overall Soundness and Invertibility of LocalTableau #
Local Tableaux make progress #
These lemmas are used to show soundness, in particular loadedDiamondPaths.
End nodes of any local tableau are basic.
If X is not basic, then all end nodes Y of a local tableau lt for X
are strictly lower than X according to the DM-ordering of their multisets.
If a sequent is lower according the DM-ordering, then it is different.
If X is not basic, then for all end nodes Y of a
local tableau lt for X we have that Y ≠ X.
If a sequent is lower according to the DM-ordering, then they are multiset-different. (The analogue with finset instead of multiset does not hold.)