Strategic Games @cite{fehr-schmidt-1999} #
@cite{houlihan-kleiman-weiner-hewitt-tenenbaum-saxe-2023}
Multi-agent game infrastructure for social cognition.
Existing DecisionTheory.lean is single-agent: one decision-maker, one
prior, one utility. But emotion prediction, politeness, and game-theoretic
pragmatics all require strategic interaction — one agent's payoff
depends on what another agent does.
This module provides:
SymmetricGame: 2-player symmetric game with payoff matrix- Base features (Money, AI, DI) as deterministic functions of action pairs
- Split-or-Steal (@cite{houlihan-kleiman-weiner-hewitt-tenenbaum-saxe-2023}) as a weak Prisoner's Dilemma
Connection to BToM #
A SymmetricGame determines the utility field of a BToM generative
model: the agent's Desire type becomes the Fehr-Schmidt preference
weights (ω_Money, ω_AIA, ω_DIA), and the planModel implements
expected-utility maximization over those weighted base features.
Connection to Pragmatics #
Signaling games (@cite{franke-2011}, @cite{lewis-1969}) extend this to
games where actions = utterances and payoffs depend on communicated
information. The current module covers non-communicative games; signaling
games are in Theories/Pragmatics/SignalingGames.lean.
Binary action in a 2-player game.
Instances For
Equations
- Pragmatics.GameTheory.instDecidableEqAction2 x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
A 2-player symmetric game: payoff a₁ a₂ is player 1's material payoff
when player 1 plays a₁ and player 2 plays a₂.
Symmetric: player 2's payoff when (a₁, a₂) is played equals player 1's payoff when (a₂, a₁) is played.
Instances For
Disadvantageous inequality for player 1 in outcome (a₁, a₂).
Equations
- g.di a₁ a₂ = Core.disadvantageousInequality (g.payoff a₁ a₂) (g.otherPayoff a₁ a₂)
Instances For
Advantageous inequality for player 1 in outcome (a₁, a₂).
Equations
- g.ai a₁ a₂ = Core.advantageousInequality (g.payoff a₁ a₂) (g.otherPayoff a₁ a₂)
Instances For
Base features: the three Fehr-Schmidt utility components. Returns (Money, AI, DI) — all deterministic given the action pair.
Equations
- g.baseFeatures a₁ a₂ = (g.payoff a₁ a₂, g.ai a₁ a₂, g.di a₁ a₂)
Instances For
Weighted social utility for player 1 given Fehr-Schmidt weights.
U = ω_m · Money − ω_aia · AI − ω_dia · DI
Note the negative signs: AI and DI are costs.
Equations
- g.socialUtility a₁ a₂ ωMoney ωAIA ωDIA = ωMoney * g.payoff a₁ a₂ - ωAIA * g.ai a₁ a₂ - ωDIA * g.di a₁ a₂
Social utility with Fehr-Schmidt weights equals applying fehrSchmidt with rescaled parameters, when ωMoney = 1.
The Split-or-Steal game from @cite{houlihan-kleiman-weiner-hewitt-tenenbaum-saxe-2023}.
A weak Prisoner's Dilemma: CC gives (pot/2, pot/2), CD gives (0, pot), DC gives (pot, 0), DD gives (0, 0). Unlike a standard PD, mutual defection yields the same payoff as being cooperated against — hence "weak."
Equations
- One or more equations did not get rendered due to their size.
Instances For
CC: equal split, no inequality.
Defecting weakly dominates: ∀ a₂, payoff(D, a₂) ≥ payoff(C, a₂).
DC: defector gets everything — maximum advantageous inequality.
CD: cooperator gets nothing — maximum disadvantageous inequality.
Despite weak dominance, a player with high enough AIA weight prefers to cooperate when the opponent cooperates.
CC: payoffs equal ⇒ AI = DI = 0 ⇒ socialUtility = pot/2. DC: payoff = pot, other = 0, AI = pot, DI = 0 ⇒ socialUtility = pot(1 − ωAIA). When ωAIA > 1/2: pot(1 − ωAIA) < pot/2, so cooperation is preferred.
This is the Fehr-Schmidt explanation of cooperation: an agent with high advantageous inequity aversion (AIA) — who dislikes getting more than others — will cooperate even though defection weakly dominates in material terms.