EconCSLib.GameTheory.StrategicGame.Basic #
Defines StrategicGame, the central structure of the library.
Main definitions #
StrategicGame— a strategic-form (normal-form) gameStrategicGame.Profile— the type of strategy profiles for a gameStrategicGame.deviate— unilateral deviation on a game-bound profilewelfare— social welfare (sum of payoffs)
Design choices #
N(player type) andU(utility type) are unconstrained in the structure.strategyis a dependent family, so players may have different strategy spaces.Profile G=∀ i, G.strategy i(a choice of strategy for each player).deviate σ i s'is owned byStrategicGame, not by a standalone core profile abstraction.
A strategic game (normal-form game) with players N and utilities in U.
The structure records only the bare data: strategy spaces and a payoff function. All assumptions (finiteness, ordering, computability) are added at usage sites.
- strategy : N → Type u_3
The strategy space of each player.
- payoff : ((i : N) → self.strategy i) → N → U
The payoff function: maps a strategy profile to each player's utility.
Instances For
Profile #
The type of strategy profiles for game G: each player picks a strategy.
This is a dependent function ∀ i, G.strategy i. The profile type is bound to
the game, making it explicit that a profile belongs to a specific strategic game.
Instances For
Unilateral deviation in a game-bound profile: player i switches to s',
while all other players keep their current strategies.
Equations
- StrategicGame.deviate σ i s' = Function.update σ i s'
Instances For
σ[i ↦ s'] is the profile where player i switches to s'.
Scoped to keep the postfix […] bracket from clashing with list literals
(… []) in importing files; open scoped StrategicGame to use it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Deviating to the same strategy is the identity.
At the deviated player, the updated profile returns the new strategy.
At every other player, the updated profile is unchanged.
Welfare #
The social welfare of a profile: the sum of all players' payoffs.
Requires [Fintype N] and [AddCommMonoid U].