Documentation

EconCSLib.GameTheory.ExtensiveGame.Basic

EconCSLib.GameTheory.ExtensiveGame.Basic #

Payoff-aware compatibility for the minimal Arena-based EFG core.

Design #

The payoff-free Arena and ControlledGame carriers live in ExtensiveGame.Structural.Basic. This module preserves the historical Basic import path and adds only the endpoint-state-payoff ExtensiveGame compatibility carrier.

Main definitions #

References #

Extensive-form game #

structure ExtensiveGame (N : Type u_1) (U : Type u_2) extends ControlledGame N :
Type (max (max (max u_1 u_2) (u_3 + 1)) (u_4 + 1))

A state-payoff extensive game: a payoff-free controlled game together with a convenient endpoint-state payoff.

* `mover s` = who controls state `s` (`none` = non-player-controlled)
* `payoff s i` = payoff for player `i` at state `s` (meaningful at terminal states)

General terminal-history, complete-path, and winning-condition semantics
are separate objective layers; this field is not their authoritative
definition.

No `isTerminal` fieldterminal states are detected by `IsEmpty (Action s)`.
No proof terms to carry around. 
Instances For
    @[reducible, inline]
    abbrev ExtensiveGame.ofControlledGame {N : Type u_1} {U : Type u_2} (base : ControlledGame N) (payoff : base.StateNU) :

    Add a state-based payoff interpretation to a payoff-free controlled game.

    Forgetting the result with ExtensiveGame.toControlledGame recovers base definitionally.

    Equations
    Instances For
      @[simp]
      theorem ExtensiveGame.ofControlledGame_toControlledGame {N : Type u_1} {U : Type u_2} (base : ControlledGame N) (payoff : base.StateNU) :
      @[simp]
      theorem ExtensiveGame.ofControlledGame_payoff {N : Type u_1} {U : Type u_2} (base : ControlledGame N) (payoff : base.StateNU) (state : base.State) (i : N) :
      (ofControlledGame base payoff).payoff state i = payoff state i
      @[simp]

      Forgetting an existing payoff-aware game and then reattaching its payoff recovers the original game definitionally.

      @[reducible, inline]
      abbrev ExtensiveGame.ofArena {N : Type u_1} {U : Type u_2} (arena : Arena) (init : arena.State) (mover : arena.StateOption N) (payoff : arena.StateNU) :

      Add an initial state, mover assignment, and payoff function to an ordinary arena.

      All game-semantic data are explicit arguments; in particular this constructor does not infer chance nodes or terminal payoffs from the arena. It composes with observed-game presentation constructors without duplicating the arena's state, action, or transition fields.

      Equations
      Instances For
        @[simp]
        theorem ExtensiveGame.ofArena_toArena {N : Type u_1} {U : Type u_2} (arena : Arena) (init : arena.State) (mover : arena.StateOption N) (payoff : arena.StateNU) :
        (ofArena arena init mover payoff).toArena = arena
        @[simp]
        theorem ExtensiveGame.ofArena_init {N : Type u_1} {U : Type u_2} (arena : Arena) (init : arena.State) (mover : arena.StateOption N) (payoff : arena.StateNU) :
        (ofArena arena init mover payoff).init = init
        @[simp]
        theorem ExtensiveGame.ofArena_mover {N : Type u_1} {U : Type u_2} (arena : Arena) (init : arena.State) (mover : arena.StateOption N) (payoff : arena.StateNU) (state : arena.State) :
        (ofArena arena init mover payoff).mover state = mover state
        @[simp]
        theorem ExtensiveGame.ofArena_payoff {N : Type u_1} {U : Type u_2} (arena : Arena) (init : arena.State) (mover : arena.StateOption N) (payoff : arena.StateNU) (state : arena.State) (i : N) :
        (ofArena arena init mover payoff).payoff state i = payoff state i
        @[reducible, inline]
        abbrev ExtensiveGame.arena {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) :

        The arena of a game.

        Equations
        Instances For
          @[reducible, inline]
          abbrev ExtensiveGame.controlledGame {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) :

          Forget only the state-payoff interpretation.

          This is a lossless projection for dynamics, the initial root, and mover data. It is the canonical migration path from payoff-aware APIs to structural or logical-game APIs.

          Equations
          Instances For
            @[reducible, inline]
            abbrev ExtensiveGame.actions {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) :
            Type u_4

            Available actions at a state.

            Equations
            Instances For
              @[reducible, inline]
              abbrev ExtensiveGame.isTerminal {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) :

              A state is terminal.

              Equations
              Instances For
                def ExtensiveGame.isPlayerState {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) (i : N) :

                A state is controlled by player i.

                Equations
                Instances For
                  @[simp]
                  theorem ExtensiveGame.isPlayerState_iff_toControlledGame {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) (i : N) :

                  The historical payoff-aware player-state predicate is exactly the canonical controlled-game predicate.

                  def ExtensiveGame.isNonPlayerState {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) :

                  A nonterminal state carrying the non-player-control label.

                  This predicate supplies no probability law.

                  Equations
                  Instances For
                    @[simp]

                    The historical payoff-aware non-player-state predicate is exactly the canonical controlled-game predicate.

                    @[reducible, inline]
                    abbrev ExtensiveGame.isChanceState {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) (s : G.State) :

                    Compatibility name for isNonPlayerState.

                    No chance law is implied by this predicate alone.

                    Equations
                    Instances For
                      def ExtensiveGame.NoChance {N : Type u_1} {U : Type u_2} (G : ExtensiveGame N U) :

                      No chance nodes: every nonterminal state has a strategic mover.

                      Equations
                      Instances For
                        @[simp]

                        The historical payoff-aware no-chance predicate is exactly the canonical controlled-game predicate.