From winning strategies to model graphs (Section 6.3) #
BuildTree #
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?