Documentation

EconCSLib.GameTheory.ExtensiveGame.FiniteArenaExtraction

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 #

def ExtensiveGame.TreeShapedFrom {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (root : G.State) :

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
Instances For
    structure ExtensiveGame.FiniteExtractable {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) :

    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.

    Instances For
      def ExtensiveGame.ActionListComplete {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) (head : G.Action s) (tail : List (G.Action s)) :

      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
      Instances For
        inductive ExtensiveGame.ExtractsGameTree {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) :
        G.StateGameTree N UProp
        Instances For
          inductive ExtensiveGame.ExtractsGameTreeList {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) :
          List (G.Action s)List (GameTree N U)Prop
          Instances For
            def ExtensiveGame.extractTerminalGameTree {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) (_hs : G.isTerminal s) :

            Terminal states extract to one-leaf GameTrees.

            Equations
            Instances For
              theorem ExtensiveGame.extractTerminal_extracts {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) (hs : G.isTerminal s) :

              The certified terminal-state extractor satisfies the relational extraction interface.

              theorem ExtensiveGame.ExtractsGameTree.leaf_payoff {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) {s : G.State} {p : NU} (h : G.ExtractsGameTree s (GameTree.Leaf p)) :
              p = G.payoff s

              If an Arena state extracts to a leaf, the leaf payoff is exactly the Arena payoff at that state.

              theorem ExtensiveGame.ExtractsGameTree.node_head_reachable {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) {s : G.State} {i : N} {headTree : GameTree N U} {tailTrees : List (GameTree N U)} (h : G.ExtractsGameTree s (GameTree.Node i headTree tailTrees)) :
              (head : G.Action s), G.Reachable s (G.next s head) G.ExtractsGameTree (G.next s head) headTree

              At an extracted decision node, the head child is reached by one Arena transition and itself has an extracted subtree.

              theorem ExtensiveGame.ExtractsGameTree.spe_on_to_nash_at {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) [TotalPreorder U] {s : G.State} {tree : GameTree N U} (_h : G.ExtractsGameTree s tree) {σ : GameTree.Strategy N U} (hspe : GameTree.IsSubgamePerfectOn σ tree) :

              On any extracted tree, root-scoped subgame perfection implies root Nash equilibrium through the ordinary GameTree equilibrium API.