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: Do we need to keep track of which rule is used?
- Leaf {pos : GamePos} (rp : rep pos.fst pos.snd.fst) : BuildTree pos
- Step {pos : GamePos} (YS : List GamePos) (YS_Moves : (newPos : GamePos) → newPos ∈ YS → Move pos newPos) (next : (newPos : GamePos) → newPos ∈ YS → BuildTree newPos) : BuildTree pos
Instances For
Matches #
WORRY: Where in the below is it okay/safe to work with the BuildTree type and
where should we insist on the (more specific) buildTree result value?
Path inside a BuildTree. Analogous to PathIn for Tableau.
- stop {pos : GamePos} {bt : BuildTree pos} : Match bt
- mov {pos : GamePos} {YS : List GamePos} {Y : GamePos} {mvs : (newPos : GamePos) → newPos ∈ YS → Move pos newPos} {next : (newPos : GamePos) → newPos ∈ YS → BuildTree newPos} (Y_in : Y ∈ YS) (tail : Match (next Y Y_in)) : Match (BuildTree.Step YS mvs next)
Instances For
The parent-child relation ⋖_𝕋 in a Builder strategy tree. Similar to edge but data.
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 only store the π part of such pre-states, because the π' is then uniquely determined by π.
This edge between matches is a modal step.
To even say this we adjusted BuildTree to contain data which rule was used.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pre-state-part starting at m is any path in bt : BuildTree consisting of non-(M) edges
and stopping at a leaf or at an (M) application. (No Match.companion steps here, see note above.)
PROBLEM / QUESTION: do we also need leafs given by empty prMoves???
- edge {pos : GamePos} {bt : BuildTree pos} {m n : Match bt} (e : m.edge n) : ¬e.isModal → PreStateP bt n → PreStateP bt m
- stopLeaf {pos : GamePos} {bt : BuildTree pos} {m : Match bt} : Match.isLeaf → PreStateP bt m
- stopAtM {pos : GamePos} {bt : BuildTree pos} {m n : Match bt} (e : m.edge n) : e.isModal → PreStateP bt m
Instances For
Collect all PreStatePs from a given m onwards.
Equations
- (BuildTree.Leaf rp).allPreStatePs m = [PreStateP.stopLeaf ⋯]
- (BuildTree.Step YS YS_Moves next).allPreStatePs x_2 = sorry
Instances For
A pre-state is a maximal pre-state-part, i.e. starting at the root or just after (M).
WORRY: should fromRoot also have a condition about pos being the start of the game?
- fromRoot {pos : GamePos} {bt : BuildTree pos} : PreStateP bt Match.stop → PreState bt
- fromMod {pos : GamePos} {bt : BuildTree pos} {o m : Match bt} (e : o.edge m) : e.isModal → PreStateP bt m → PreState bt
Instances For
Collect formulas in a pre-state. The non-loaded part of Λ(π) in paper.
TODO: If the pre-state ends in a repeat, also include formulas in the path from companion to (M).
QUESTION: Can we collect loaded formulas here by unloading them?
Or would that make the loaded case of PreState.pdlFormCase unsayable?
Equations
- PreState.forms = sorry
Instances For
Collect formulas in a pre-state. The loaded part of Λ(π) in paper.
Equations
- PreState.lforms = sorry
Instances For
Equations
- PreState.last = sorry
Instances For
Definition 6.17 to get model graph from strategy tree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
WIP Lemma 6.18
QUESTION: which R can we use here in order to use Modelgraphs.Q?