Generating all Local Tableaux #
We show that for any X the type LocalTableau is finite.
This is needed to define BuildTree as a finite tree.
Helpers about Finset.pdlSort #
All one-sided local rules #
Transport a OneSidedLocalRule along an equality of preconditions.
Equations
- PDL.osrCast h r = ⋯.mpr r
Instances For
Given the sorted list of the formulas in L, is there a OneSidedLocalRule for L?
The pair case comes first so that the equations below hold by rfl.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Is there a OneSidedLocalRule applicable to L?
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
All load rules #
Given a negated loaded formula, is there a LoadRule applicable to it?
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
All local rules #
Helper for LocalRule.all, dealing with the two closing rules LRnegL and LRnegR.
Equations
- One or more equations did not get rendered due to their size.
Instances For
All local rule applications #
Given a sequent, return a list of all possible local rule applications.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Termination measure for local tableaux #
The formula-length measure of the optional loading.
Equations
- PDL.lmOfOlf none = 0
- PDL.lmOfOlf (some (Sum.inl nlf)) = PDL.lmOfFormula (PDL.negUnload nlf)
- PDL.lmOfOlf (some (Sum.inr nlf)) = PDL.lmOfFormula (PDL.negUnload nlf)
Instances For
Local measure of a sequent: the sum of lmOfFormula over all three components.
Equations
- PDL.lmOfSequent X = ∑ φ ∈ X.1, PDL.lmOfFormula φ + ∑ φ ∈ X.2.1, PDL.lmOfFormula φ + PDL.lmOfOlf X.2.2
Instances For
Local measure of an optional negated loaded formula.
Equations
- PDL.lmOfONlf none = 0
- PDL.lmOfONlf (some nlf) = PDL.lmOfFormula (PDL.negUnload nlf)
Instances For
Helpers to show that local rules decrease the measure #
The measure sum over a union is at most the sum of the measure sums.
For (F,δ) ∈ Dset α the measure sum over F is at most the test measure of α.
Unfolding the measure of a diamond with a non-atomic program.
One-sided local rules strictly decrease the measure sum.
Loaded rules strictly decrease the measure: the new formulas together with the new loaded formula have a smaller measure than the old loaded formula.
Generating all local tableaux #
Convert a function returning lists into a list of functions. Helper for LocalTableau.all.
Equations
Instances For
Equations
- PDL.comboF s f = List.map (fun (g : (x : PDL.Sequent) → x ∈ s.pdlSeqSort → q x) (x : PDL.Sequent) (hx : x ∈ s) => g x ⋯) (PDL.combo fun (x : PDL.Sequent) (hx : x ∈ s.pdlSeqSort) => f x ⋯)
Instances For
Enumerate all local tableaux rooted at a sequent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- PDL.LocalTableau.fintype = { elems := (PDL.LocalTableau.all X).toFinset, complete := ⋯ }
Generating all Open Local Tableaux #
Enumerate all local tableaux with at least one end node.
Equations
- One or more equations did not get rendered due to their size.