Documentation

EconCSLib.GameTheory.ExtensiveGame.Structural.Basic

Payoff-free structural carriers for extensive games #

This module contains only the representation-neutral dynamics used by the minimal EFG core.

Main definitions #

No payoff, objective, probability law, finiteness assumption, decidability assumption, or information structure is stored in these carriers. In particular, mover s = none is only a non-player-control label. A chance law, when desired, belongs to a separate stochastic semantics layer.

This state-space representation permits merging paths, cycles, and infinite state or action types. History unfolding is provided separately.

structure Arena :
Type (max (u_1 + 1) (u_2 + 1))

A game arena: the pure dynamics of an extensive-form game.

States, actions, and transitions are stored without players, payoffs, or probability. A state is terminal iff Action s is empty.

  • State : Type u_1

    The state space.

  • Action : self.StateType u_2

    Available actions at each state. Empty means terminal.

  • next (s : self.State) : self.Action sself.State

    Transition function from a state and one legal action.

Instances For
    def Arena.IsTerminal (A : Arena) (s : A.State) :

    A state is terminal if there are no available actions.

    Equations
    Instances For
      def Arena.IsDecision (A : Arena) (s : A.State) :

      A state is a decision point if it has at least one available action.

      Equations
      Instances For

        Terminal and decision states are complementary.

        structure ControlledGame (N : Type u_1) extends Arena :
        Type (max (max u_1 (u_2 + 1)) (u_3 + 1))

        A payoff-free controlled extensive-game skeleton.

        ControlledGame adds only a distinguished initial state and a mover label to the pure Arena dynamics. It deliberately stores no objective, payoff, probability law, finiteness, decidability, or information data.

        At a nonterminal state, mover s = none means only that the state is not controlled by a strategic player. It does not itself supply a chance distribution. The mover label at a terminal state is semantically ignored.

        Instances For
          @[reducible, inline]
          abbrev ControlledGame.ofArena {N : Type u_1} (arena : Arena) (init : arena.State) (mover : arena.StateOption N) :

          Add an initial state and mover assignment to an ordinary arena.

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

            The arena of a payoff-free controlled game.

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

              Available actions at a state.

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

                A state is terminal.

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

                  A state is controlled by player i.

                  Equations
                  Instances For

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

                    This predicate deliberately supplies no probability law.

                    Equations
                    Instances For
                      @[reducible, inline]
                      abbrev ControlledGame.isChanceState {N : Type u_1} (G : ControlledGame N) (s : G.State) :

                      Compatibility name for a non-player-controlled nonterminal state.

                      This structural predicate does not assert that a chance law exists. Stochastic layers may interpret such a state as chance only after supplying the relevant law.

                      Equations
                      Instances For

                        Every nonterminal state has a strategic mover.

                        Equations
                        Instances For
                          def Arena.ofFin (n : ) (nActions : Fin n) (next : (s : Fin n) → Fin (nActions s)Fin n) :

                          Build an arena from a Fin-indexed state space with finite action types. Terminal states have nActions s = 0.

                          Equations
                          Instances For