OpenGame.lean
The VCG auction as a composable module in Hedges' open-game framework. Sequential and parallel composition are defined. Nash equilibria decompose into component equilibria. DSIC does not — but it composes under argmax-stability, and additive separability of valuations is the sharp necessary condition for a mechanism-independent guarantee.
OpenGame
An open game is a lens-like object with five type parameters: strategy (
St), observation (X), action (Y), result (R), and coresult (S). Three operations: play (forward pass), coplay (backward pass), and bestResponse (equilibrium condition).
structure OpenGame (St X Y R S : Type*) where
play : St β X β Y
coplay : St β X β R β S
bestResponse : X β (Y β R) β St β Prop Ghani, Hedges, Winschel & Zahn (2018), Definition 2.1. arXiv: 1603.04641
OpenGame.seq / OpenGame.par
Sequential composition: game G plays first, game H plays using G's output. The backward channel threads results back through both games. Parallel composition: games G and H play simultaneously on independent inputs (monoidal product).
def OpenGame.seq (G : OpenGame Stβ X Y S T)
(H : OpenGame Stβ Y Z R S) :
OpenGame (Stβ Γ Stβ) X Z R T
def OpenGame.par (G : OpenGame Stβ Xβ Yβ Rβ Sβ)
(H : OpenGame Stβ Xβ Yβ Rβ Sβ) :
OpenGame (Stβ Γ Stβ) (Xβ Γ Xβ) (Yβ Γ Yβ) (Rβ Γ Rβ) (Sβ Γ Sβ) vcgOpenGame
The VCG auction as an open game. Strategy is the full auction state. Observation is a query point. Action is the winning advertiser. Note: bestResponse ignores the continuation argument k and directly encodes a no-profitable-deviation condition at the current auction state. This is nonstandard — in typical open games, bestResponse depends on the continuation. Here the condition is continuation-independent, which makes it stronger than standard Nash (closer to dominant-strategy behavior). The actual DSIC theorem with its truthfulness hypothesis lives in Strategyproof.lean.
def vcgOpenGame : OpenGame (Auction ΞΉ E) E ΞΉ β β where
play := fun auc x => winner auc x
coplay := fun _auc _x r => r
bestResponse := fun x _k auc =>
β (i : ΞΉ) (r' : Report E),
playerUtility auc i x β₯
playerUtility (auc.withReport i r') i x composed_equilibria_decompose
Hedges' Theorem 4.3: Nash equilibria of sequentially composed games decompose into component equilibria. A strategy profile is Nash for G.seq H iff the component strategies are Nash for their respective games with appropriately threaded continuations.
theorem composed_equilibria_decompose ... :
(G.seq H).isNashEquilibrium x k (sβ, sβ) β
(G.bestResponse x ... sβ β§ H.bestResponse ... k sβ) DSIC composition, characterized
Hedges' decomposition theorem covers Nash, Bayesian-Nash, and
subgame-perfect equilibria. It does not cover dominant-strategy incentive compatibility. DSIC doesn't compose in general — lying in stage 1 can give a payoff through stage 2's interface.
The sufficient condition is argmax-stability: the optimal report in each mechanism is independent of the other mechanism's outcome. Equivalently, "i-insensitive continuations" — player i's upstream report cannot affect i's downstream payoff. Additive separability of valuations is the sharp necessary condition for a mechanism-independent guarantee; any Ξ΅-violation admits a rectangle-test counterexample. The k-mechanism generalization requires k-way stability, not pairwise — the same structural gap as pairwise versus mutual independence in probability.
This auction pipeline satisfies the condition because the publisher filter is exogenous. The characterization currently lives in the docstring and in
Vector Space; mechanized Lean proofs of the sufficient and necessary directions are still to be written.
Connections
- Strategyproof.lean — proves
vcg_is_nash_equilibriumusing this framework - GaussianOptimality.lean — the capstone theorem this feeds into
- Ghani, Hedges, Winschel & Zahn (2018) — compositional game theory, Theorem 4.3
- Hedges (2017) — morphisms of open games
- Hedges (2018) — subgame-perfect equilibria in open games
- Bolt, Hedges & Zahn (2023) — Bayesian open games
- Kura et al. (2026) — indexed graded monad for welfare tracking