Documentation

EconCSLib.GameTheory.ExtensiveGame.ImperfectInformation

EconCSLib.GameTheory.ExtensiveGame.ImperfectInformation #

A finite interface for imperfect-information extensive games.

This is intentionally a lightweight structural layer. It records vertices, available actions, transitions, mover ownership, terminal payoffs, and information-set labels. Well-formedness conditions are predicates, not fields, so examples can start small while later theorem statements can assume exactly the conditions they need.

Main definitions #

structure FiniteImperfectGame (N : Type u_1) (U : Type u_2) :
Type (max (max (max (max u_1 u_2) (u_3 + 1)) (u_4 + 1)) (u_5 + 1))

Finite imperfect-information extensive game data.

info s = none means the state is not in a strategic information set, typically because it is terminal or chance-controlled. info s = some k places state s in information set k.

Instances For
    def FiniteImperfectGame.IsTerminal {N : Type u_1} {U : Type u_2} (G : FiniteImperfectGame N U) (s : G.State) :

    A state is terminal when it has no available actions.

    Equations
    Instances For

      The subgame starting at state s: same finite game data with a different initial state. Extra validity conditions, such as whether s is a legitimate imperfect-information subroot, can be imposed by theorem statements using this operation.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem FiniteImperfectGame.subgameAt_init {N : Type u_1} {U : Type u_2} (G : FiniteImperfectGame N U) (s : G.State) :
        (G.subgameAt s).init = s

        The initial state of subgameAt is the chosen root.

        States in the same information set have the same mover.

        Equations
        Instances For

          States in the same information set expose equivalent action types.

          Equations
          Instances For

            Strategic information sets are attached only to player-controlled states.

            Equations
            Instances For

              Basic well-formedness package for information-set reasoning.

              Equations
              Instances For

                Re-rooting a finite imperfect-information game preserves the local information-set well-formedness package.

                def FiniteImperfectGame.PureStrategy {N : Type u_1} {U : Type u_2} (G : FiniteImperfectGame N U) (i : N) :
                Type (max (max u_5 u_4) u_3)

                A pure strategy chooses one abstract action for each player and information set.

                The action type is indexed by a representative state for that information set. For a concrete state s, actionAt below specializes this choice at s, so choices are constant on information sets by construction at the API boundary.

                Equations
                Instances For
                  def FiniteImperfectGame.PureStrategyProfile {N : Type u_1} {U : Type u_2} (G : FiniteImperfectGame N U) :
                  Type (max (max (max u_1 u_5) u_4) u_3)

                  A pure strategy profile.

                  Equations
                  Instances For
                    def FiniteImperfectGame.PureStrategy.actionAt {N : Type u_1} {U : Type u_2} (G : FiniteImperfectGame N U) {i : N} (σ : G.PureStrategy i) {s : G.State} {k : G.InfoSet} (hinfo : G.info s = some k) (hmover : G.mover s = some i) :
                    G.Action s

                    The action prescribed at a concrete player-controlled state in an information set.

                    Equations
                    Instances For
                      theorem FiniteImperfectGame.actionAt_same_info_label {N : Type u_1} {U : Type u_2} (G : FiniteImperfectGame N U) {i : N} (σ : G.PureStrategy i) {s t : G.State} {k : G.InfoSet} (hs : G.info s = some k) (ht : G.info t = some k) (hms : G.mover s = some i) (hmt : G.mover t = some i) :
                      PureStrategy.actionAt G σ hs hms = σ k s hs hms PureStrategy.actionAt G σ ht hmt = σ k t ht hmt

                      If two states are in the same information set, a strategy is queried through the same information-set label at both states. This is the formal constancy-by-indexing property; comparing concrete action values requires an action equivalence from SameActionsOnInfo.

                      Small example #

                      Instances For
                        @[implicit_reducible]
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          A tiny imperfect-information game where player 1 cannot distinguish two singleton-action states reached after player 0's root choice.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For