EconCSLib.GameTheory.ExtensiveGame.FiniteArenaExtraction #
Interfaces for extracting finite no-chance Arena-style games into GameTree.
The general reverse bridge from ExtensiveGame to GameTree cannot be total:
the Arena API allows infinite state spaces, cycles, chance states, and histories
that merge. This file records the assumptions needed for extraction and gives
small certified extraction constructors that can be extended case by case.
Main definitions #
ExtensiveGame.NoChance— every nonterminal state has a strategic mover.ExtensiveGame.TreeShapedFrom— uniqueness of histories into a state.ExtensiveGame.FiniteExtractable— explicit assumption package for reverse extraction.ExtensiveGame.ActionListComplete— an explicit finite action enumeration at one state.ExtensiveGame.ExtractsGameTree— relational extraction from a state to aGameTree.ExtensiveGame.extractTerminalGameTree— certified extraction of a terminal state to a one-leafGameTree.ExtensiveGame.ExtractsGameTree.leaf_payoff— extracted leaves preserve the Arena payoff vector.ExtensiveGame.ExtractsGameTree.node_head_reachable— the extracted head child is reached by one Arena transition.
A weak tree-shapedness condition: any two paths from the root to the same state are equal as reachability proofs.
This is intentionally proof-valued. Concrete finite extraction modules may replace it with a computable predecessor/history representation.
Equations
- G.TreeShapedFrom root = ∀ (s : G.State), Subsingleton (G.Reachable root s)
Instances For
Assumptions under which an Arena-style game can be extracted to a finite
no-chance GameTree. The actual recursive extraction is intentionally not
bundled here; users provide a finite unfolding depth or well-founded child
enumeration appropriate for their concrete game.
- no_chance : G.NoChance
- tree_shaped : G.TreeShapedFrom G.init
Instances For
A nonempty action list head :: tail contains every available action at
state s. The list is an explicit finite enumeration supplied by the
concrete game.
Equations
- G.ActionListComplete s head tail = ∀ (a : G.Action s), a ∈ head :: tail
Instances For
- leaf {N : Type u_1} {U : Type u_2} {G : ExtensiveGame N U} (s : G.State) (hs : G.isTerminal s) : G.ExtractsGameTree s (GameTree.Leaf (G.payoff s))
- node {N : Type u_1} {U : Type u_2} {G : ExtensiveGame N U} (s : G.State) (i : N) (head : G.Action s) (tail : List (G.Action s)) (headTree : GameTree N U) (tailTrees : List (GameTree N U)) (hm : G.mover s = some i) (hcomplete : G.ActionListComplete s head tail) (hhead : G.ExtractsGameTree (G.next s head) headTree) (htail : G.ExtractsGameTreeList s tail tailTrees) : G.ExtractsGameTree s (GameTree.Node i headTree tailTrees)
Instances For
- nil {N : Type u_1} {U : Type u_2} {G : ExtensiveGame N U} (s : G.State) : G.ExtractsGameTreeList s [] []
- cons {N : Type u_1} {U : Type u_2} {G : ExtensiveGame N U} (s : G.State) (head : G.Action s) (tail : List (G.Action s)) (headTree : GameTree N U) (tailTrees : List (GameTree N U)) (hhead : G.ExtractsGameTree (G.next s head) headTree) (htail : G.ExtractsGameTreeList s tail tailTrees) : G.ExtractsGameTreeList s (head :: tail) (headTree :: tailTrees)
Instances For
Terminal states extract to one-leaf GameTrees.
Equations
- G.extractTerminalGameTree s _hs = GameTree.Leaf (G.payoff s)
Instances For
The certified terminal-state extractor satisfies the relational extraction interface.
If an Arena state extracts to a leaf, the leaf payoff is exactly the Arena payoff at that state.
At an extracted decision node, the head child is reached by one Arena transition and itself has an extracted subtree.
On any extracted tree, root-scoped subgame perfection implies root Nash
equilibrium through the ordinary GameTree equilibrium API.