Documentation

EconCSLib.MechanismDesign.Auction.Myerson

EconCSLib.MechanismDesign.Auction.Myerson #

Myerson-specific theory for single-parameter mechanisms over .

This file extends the single-parameter transfer mechanism layer with:

It is the mechanism-design layer that depends on interval integration.

Structure hierarchy #

MechanismWithTransfers I (fun _ => ℝ) (I → ℝ)    -- scalar reports, scalar allocations
  └─ SingleParameterMechanism I                  -- single-parameter layer
       └─ withMyersonPayment x                    -- allocation rule + Myerson payment

SingleParameterMechanism.IsMonotone               -- implementability condition
  └─ SingleParameterMechanism.IsDSIC              -- via Myerson payment formula
noncomputable def SingleParameterMechanism.myersonPayment {I : Type u_1} [DecidableEq I] (x : (I)I) (b : I) (i : I) :

The canonical Myerson payment formula associated with an allocation rule x. Holding all other bids fixed, agent i pays

bᵢ xᵢ(b) - ∫₀^{bᵢ} xᵢ(z, b₋ᵢ) dz.

Equations
Instances For
    noncomputable def SingleParameterMechanism.withMyersonPayment {I : Type u_1} [DecidableEq I] (x : (I)I) :

    The single-parameter mechanism obtained by equipping an allocation rule with its canonical Myerson payment rule.

    Equations
    Instances For
      theorem SingleParameterMechanism.withMyersonPayment_quasiLinearUtility_eq {I : Type u_1} [DecidableEq I] (x : (I)I) (v b : I) (i : I) :
      (withMyersonPayment x).quasiLinearUtility b v i = (v i - b i) * x b i + (z : ) in 0..b i, x (Function.update b i z) i

      Utility under the canonical Myerson payment rule can be written in the standard envelope-friendly form.

      def SingleParameterMechanism.ZeroNormalized {I : Type u_1} [DecidableEq I] (p : (I)I) :

      Zero normalization for payment rules: reporting 0 yields payment 0, holding the other reports fixed.

      Equations
      Instances For

        The canonical Myerson payment rule is zero-normalized.

        Myerson Lemma, Property 1: every DSIC single-parameter mechanism has a monotone allocation rule.

        theorem SingleParameterMechanism.payment_sandwich {I : Type u_1} [DecidableEq I] {x p : (I)I} (hdsic : { allocationRule := x, paymentRule := p }.IsDSIC) (b : I) (i : I) (y z : ) :
        z * (x (Function.update b i y) i - x (Function.update b i z) i) p (Function.update b i y) i - p (Function.update b i z) i p (Function.update b i y) i - p (Function.update b i z) i y * (x (Function.update b i y) i - x (Function.update b i z) i)

        For a DSIC single-parameter mechanism, fixing all other bids yields the standard two-sided bound on payment differences.

        theorem SingleParameterMechanism.payment_difference_bound {I : Type u_1} [DecidableEq I] {x p q : (I)I} (hpdsic : { allocationRule := x, paymentRule := p }.IsDSIC) (hqdsic : { allocationRule := x, paymentRule := q }.IsDSIC) (b : I) (i : I) (y z : ) :
        |p (Function.update b i y) i - q (Function.update b i y) i - (p (Function.update b i z) i - q (Function.update b i z) i)| (y - z) * (x (Function.update b i y) i - x (Function.update b i z) i)

        If two payment rules implement the same allocation rule in DSIC form, then their difference along a one-dimensional deviation is controlled by the change in the allocation rule. This is the comparison estimate used in the proof of the Myerson payment identity.

        theorem SingleParameterMechanism.withMyersonPayment_isDSIC_of_isMonotone {I : Type u_1} [DecidableEq I] {x : (I)I} (hx : { allocationRule := x, paymentRule := myersonPayment x }.IsMonotone) :

        Myerson Lemma, Property 2: a monotone allocation rule is DSIC when paired with the canonical Myerson payment rule.

        theorem SingleParameterMechanism.isImplementable_of_isMonotone {I : Type u_1} [DecidableEq I] {x : (I)I} (hx : { allocationRule := x, paymentRule := myersonPayment x }.IsMonotone) :

        Myerson Lemma, Property 2, reformulated: an allocation rule is implementable if it is monotone.

        theorem SingleParameterMechanism.isImplementable_iff_isMonotone {I : Type u_1} [DecidableEq I] (x : (I)I) :
        IsImplementable x { allocationRule := x, paymentRule := myersonPayment x }.IsMonotone

        Myerson Lemma (a): an allocation rule is implementable if and only if it is monotone.

        theorem SingleParameterMechanism.payment_formula_of_isDSIC_of_zeroNormalized {I : Type u_1} [DecidableEq I] {x p : (I)I} (hdsic : { allocationRule := x, paymentRule := p }.IsDSIC) (h0 : ZeroNormalized p) (b : I) (i : I) :
        p b i = b i * x b i - (z : ) in 0..b i, x (Function.update b i z) i

        Explicit payment identity used in Myerson's Lemma: for a DSIC single-parameter mechanism with zero-normalized payments, the payment rule is given pointwise by the Myerson payment identity.

        theorem SingleParameterMechanism.payment_eq_myersonPayment_of_isDSIC_of_zeroNormalized {I : Type u_1} [DecidableEq I] {x p : (I)I} (hdsic : { allocationRule := x, paymentRule := p }.IsDSIC) (h0 : ZeroNormalized p) :

        Uniqueness of zero-normalized DSIC payment rules: among zero-normalized payment rules, the canonical Myerson payment rule is the unique one that implements a monotone allocation rule.

        theorem SingleParameterMechanism.existsUnique_zeroNormalized_payment_of_isMonotone {I : Type u_1} [DecidableEq I] {x : (I)I} (hx : { allocationRule := x, paymentRule := myersonPayment x }.IsMonotone) :
        ∃! p : (I)I, ZeroNormalized p { allocationRule := x, paymentRule := p }.IsDSIC

        Myerson Lemma (b): if x is monotone, then there is a unique zero-normalized payment rule making (x, p) DSIC.

        theorem SingleParameterMechanism.payment_formula_of_zeroNormalized_and_isDSIC {I : Type u_1} [DecidableEq I] {x p : (I)I} (hp : ZeroNormalized p { allocationRule := x, paymentRule := p }.IsDSIC) (b : I) (i : I) :
        p b i = b i * x b i - (z : ) in 0..b i, x (Function.update b i z) i

        Myerson Lemma (c): the unique zero-normalized DSIC payment rule from (b) is given by the explicit formula bᵢ xᵢ(b) - ∫₀^{bᵢ} xᵢ(z, b₋ᵢ) dz.