EconCSLib.MechanismDesign.Auction.AuctionBasic #
Basic auction and mechanism definitions used across the library.
This is the base layer for EconCSLib/MechanismDesign/Auction. It provides:
- abstract auction formats:
SingleItemAuction,CombinatorialAuction, and the transfer-layerSingleParameterMechanism - generic predicates such as feasibility, monotonicity, DSIC, and implementability
- ordered-bid helper constructions such as
Auction.maxBidandAuction.argmaxBid
Myerson-specific payment formulas and proofs are in
EconCSLib/MechanismDesign/Auction/Myerson.lean.
Auction format hierarchy #
Different auction formats arise by specializing the report/type space, allocation space, and payment space:
MechanismWithTransfers I T A P -- general transfer mechanism
├─ SingleItemAuction I V P -- T i = V, A = Option I
└─ SingleParameterMechanism I R -- T i = R, A = I → R, P = R
MultipleParameterMechanism I A V P -- T i = A → V
└─ CombinatorialAuction I k V P -- A = CombinatorialAllocation I k
Main definitions #
Auction formats #
SingleItemAuction— one indivisible item; allocation isOption I(winner or no sale)CombinatorialAuction—kdistinct items; allocation assigns item bundles per agentSingleParameterMechanism— Myerson's single-parameter setting, defined inMechanismDesign.Auction.Transfer
Predicates on auction formats #
CombinatorialAuction.IsFeasible— no item allocated to two agentsSingleParameterMechanism.IsAllocFeasible— allocations lie in[0, 1]SingleParameterMechanism.IsMonotone— allocation is non-decreasing in each agent's reported type (Myerson's necessary condition for DSIC)
Bid-profile support predicates (Auction.BidProfile) #
Auction.BidProfile.Nonnegative— every bid is nonnegativeAuction.BidProfile.InSet— each bid lies in a per-agent admissible setAuction.BidProfile.InBox— each bid lies in a per-agent closed intervalAuction.BidProfile.StrategyMapsBoxToBox— a strategy maps one bid box into anotherAuction.BidProfile.inBox_iff_inSet_Icc—InBox↔InSetwithSet.Icc
Ordered-bid utilities #
The following are mathematical tools for auction rules that rank bids. They do not define any specific auction's winner — each concrete auction specifies its own allocation rule, which may or may not select the highest bidder.
Auction.maxBid— the highest bid in a profileAuction.argmaxBid— the bidder with the highest bidAuction.maxBidExcluding— the highest bid excluding a given bidder
References #
- [Nisan et al., Algorithmic Game Theory, Ch. 9, 11]
- [Maschler, Solan, Zamir, Game Theory, Ch. 11–12]
Abstract auction formats #
A single-item auction.
One indivisible item is for sale. Each agent reports a scalar bid of type V.
The allocation is Option I:
Which bidder wins, or whether anyone wins, is determined by the allocation rule of the specific mechanism. This structure imposes no winner-selection policy.
- allocationRule : (I → V) → Option I
- paymentRule : (I → V) → I → P
Instances For
A multi-item auction with k distinct items.
An agent bundle is a finite subset of the k items, represented as
Finset (Fin k). A full allocation assigns one bundle to each agent. Agents
report valuation functions over full allocation profiles, so this is the
specialization of MultipleParameterMechanism to bundle allocations.
Feasibility (no item sold twice) is a separate predicate; see IsFeasible.
Equations
- MultiItemBundle k = Finset (Fin k)
Instances For
View a named multi-item bundle as the underlying finite set of item indices.
Instances For
A multi-item allocation assigns each agent a bundle of items.
Equations
- CombinatorialAllocation I k = (I → MultiItemBundle k)
Instances For
A combinatorial auction with k distinct items.
This is a multiple-parameter mechanism whose allocation space is the type of
bundle-allocation profiles I → Finset (Fin k). Each agent reports a valuation
over those allocation profiles.
- allocationRule : (I → CombinatorialAllocation I k → V) → CombinatorialAllocation I k
- paymentRule : (I → CombinatorialAllocation I k → V) → I → P
Instances For
Feasibility: each item is allocated to at most one agent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bid-profile support predicates #
Side conditions on bid profiles that constrain the admissible bid space without modifying the underlying auction format. Useful for bounded-support equilibrium arguments and strategy-set restrictions in Bayesian auction theory.
[Krishna, Ch. 2-3]; [AGT, Ch. 9, §9.3-9.5]
Every bid is nonnegative.
$\forall i.\; b_i \ge 0$. Captures the standard private-value convention that bids represent willingness-to-pay.
Equations
- Auction.BidProfile.Nonnegative b = ∀ (i : I), 0 ≤ b i
Instances For
Each bid lies in the per-agent admissible set.
For a family of strategy sets $S_i \subseteq V$, asserts $\forall i.\; b_i \in S_i$. Captures heterogeneous strategy spaces.
Equations
- Auction.BidProfile.InSet b S = ∀ (i : I), b i ∈ S i
Instances For
A scalar strategy maps the input bid interval $[\ell, u]$ into $[\ell', u']$.
Captures Lipschitz/contraction conditions for best-response dynamics in bounded auctions.
Equations
Instances For
Ordered-bid utilities #
The following definitions apply when bids are linearly ordered (e.g., scalar bids in ℝ).
They are mathematical tools for computing bid maxima and argmaxes — they do not define
any particular auction's winner or allocation rule.
Each concrete auction explicitly states whether it uses these utilities and how.
The highest bid in a profile.
Equations
- Auction.maxBid b = Finset.univ.sup' ⋯ b
Instances For
There exists a bidder whose bid equals the highest bid.
The bidder whose bid achieves the maximum.
This is a mathematical argmax, not a declaration that any auction's winner is the highest bidder. Concrete auctions define their own allocation/winner rules.
Equations
Instances For
The argmax bidder's bid equals the highest bid.
Every bid is at most the argmax bidder's bid.
If i strictly outbids all others, then i is the argmax bidder.
The highest bid excluding bidder i.
Equations
- Auction.maxBidExcluding b i = (Finset.univ.erase i).sup' ⋯ b
Instances For
Excluding any bidder can only decrease the highest bid.
If i is not the argmax bidder, excluding i does not change the highest bid.
The argmax bidder's bid is at least the highest bid among all others.
Changing i's bid does not affect the highest bid among the others.