From winning strategies to model graphs (Section 6.3) #
BuildTree #
Specification that PdlRule.all is complete, almost: we demand X.basic here which is not
part of the PdlRule type, but demanded by Tableau.pdl.
Tree data type to keep track of choices made by Builder. Might still need to be tweaked.
- Choices should be labelled with the choices made by prover? TODO: i.e. we need to keep track of which rule is used.
- Maybe we also need to carry proofs in here?
- Leaf {pos : GamePos} (rp : rep pos.fst pos.snd.fst) : BuildTree pos
- Step {pos : GamePos} (YS : List GamePos) (next : (newPos : GamePos) → newPos ∈ YS → BuildTree newPos) : BuildTree pos
Instances For
Equations
- Match.stop.append m2 = m2
- (Match.move Y_in tail).append m2 = Match.move Y_in (tail.append m2)
Instances For
Equations
- Match.rewind = sorry
Instances For
Pre-states (Def 6.13) #
As possible worlds for the model graph we want to define maximal paths inside the build tree
that do not contain (M) steps.
In the paper pre-states are allowed to be of the form π;π' when π ends at a repeat and π' is a maximal prefix of the path from the companion to that repeat. Here we will probably only store the π part of such pre-states, because the π' is uniquely determined by π then.
A pre-state-part is a path in a BuildTree starting at a Match, going along any non-(M) edge
or companion steps and ending at a leaf or just before an (M) application.
- edge {Pos : GamePos} {bt : BuildTree Pos} {m n : Match bt} (e : m.edge n) : e.not_mod → PreStateP bt n → PreStateP bt m
- companion {Pos : GamePos} {bt : BuildTree Pos} {m n : Match bt} : m.companion n → PreStateP bt n → PreStateP bt m
- stop {Pos : GamePos} {bt : BuildTree Pos} {m : Match bt} : false = true → PreStateP bt m
Instances For
Equations
- PreState.all bt = sorry
Instances For
Collect formulas in a pre-state.
TODO: If the pre-state ends in a repeat, also include formulas in the path from companion to (M).
Equations
- PreState.forms = sorry
Instances For
Equations
- PreState.last = sorry