← back to vector space proof

OpenGame.lean

ghView source on GitHub

The VCG auction as a composable module in Hedges' open-game framework. Sequential and parallel composition are defined. wpNash 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 wplens-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β‚‚)
Scheme

DSIC composition, characterized

Hedges' decomposition theorem covers Nash, wpBayesian-Nash, and wpsubgame-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 jkVector Space; mechanized Lean proofs of the sufficient and necessary directions are still to be written.

Connections