Strategyproof.lean
The DSIC proof: no advertiser can improve their utility by misreporting their bid, center, or sigma — regardless of what others report. Only player i needs to be truthful. The proof is a four-case exhaustion over who wins under truth vs. deviation.
The four cases
The proof splits on two binary questions: does player i win when truthful? Does player i win when deviating? That gives four cases:
Case 1: both win
Utility = trueVal_i - C in both cases, where C = welfareOthersWithout. By welfareOthersWithout_invariant, C doesn't depend on i's report. So utility is identical.
Case 2: truth wins, deviation loses
Truthful utility = trueVal_i - C ≥ 0 by welfareOthersWithout_le_trueVal_of_win: winning truthfully means your value exceeds the externality. Deviated utility = 0 by playerUtility_eq_zero_of_loser. Truth wins.
Case 3: truth loses, deviation wins
Truthful utility = 0. Deviated utility = trueVal_i - C ≤ 0 by trueVal_le_welfareOthersWithout_of_loss: losing truthfully means the externality exceeds your value, and C is invariant. Truth wins again.
Case 4: both lose
Both utilities are 0 by playerUtility_eq_zero_of_loser.
welfareOthersWithout_invariant (payment invariance)
Changing player i's report does not change welfareOthersWithout. The counterfactual welfare with i removed depends only on other players' reports. This is the structural property that makes VCG dominant-strategy rather than just
Nash.
theorem welfareOthersWithout_invariant
(auc : Auction ι E) (i : ι) (r' : Report E) (x : E) :
welfareOthersWithout (auc.withReport i r') i x =
welfareOthersWithout auc i x vcg_dsic
The main result. For any deviation r' that player i might submit, truthful utility ≥ deviated utility. The hypothesis is isTruthful (auc.report i) (auc.valuation i) — only player i needs to be truthful. Others can report anything.
theorem vcg_dsic
(auc : Auction ι E) (i : ι) (x : E) (r' : Report E)
(hi : isTruthful (auc.report i) (auc.valuation i)) :
playerUtility auc i x ≥
playerUtility (auc.withReport i r') i x Vickrey (1961) Thm 1, Clarke (1971) §3, Groves (1973) Thm 2. This is the machine-checked version of the DSIC claim in
Vector Space.
Corollaries
vcg_strategyproof: when all players are truthful, no single player benefits from deviating. (DSIC implies Nash.)
vcg_is_nash_equilibrium: truthful reporting satisfies the open-game Nash equilibrium condition from OpenGame.lean.
truthful_sigma_is_best_response: even if a player only deviates in sigma (keeping center and bid fixed), truthful sigma is still optimal.
Connections
- Efficiency.lean — supplies
winner_maximizes_reportedValandreportedVal_eq_trueVal_of_truthful - OpenGame.lean — the
vcg_is_nash_equilibriumcorollary connects to Hedges' framework - GaussianOptimality.lean — bundles strategyproofness with welfare-optimality in the capstone
- Vickrey (1961) — counterspeculation, auctions, and competitive sealed tenders
- Clarke (1971) — multipart pricing of public goods
- Groves (1973) — incentives in teams