Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Claim 4.8 — perturbing agent 1 toward its bundle keeps the allocation

Proved
AlgMechDesign.LowerBound.claim_4_8

by mikedeng1 · Sep 28, 2026 · Mathlib 0df444a (Lean v4.33.1)

mechanism-designp2o-batch-p200bp2o-gran-per-chapterp2o-plan-paperp2o-v1scheduling

Consider two agents and k≥3k \ge 3k≥3 tasks, and a truthful direct mechanism (x,p)(x,p)(x,p). Let ttt be the type vector with tji=1t^i_j = 1tji​=1 for both agents and all tasks, and suppose ∣x1(t)∣≤∣x2(t)∣|x^1(t)| \le |x^2(t)|∣x1(t)∣≤∣x2(t)∣. Let x=x1(t)x = x^1(t)x=x1(t) and let xˉ\bar xxˉ be its complement (=x2(t)=x^2(t)=x2(t)). For 0<ε<10<\varepsilon<10<ε<1 define t^=t(x→1ε, xˉ→11+ε)\hat t = t(x \xrightarrow{1} \varepsilon,\ \bar x \xrightarrow{1} 1+\varepsilon)t^=t(x1​ε, xˉ1​1+ε): agent 1's time becomes ε\varepsilonε on every task of xxx and 1+ε1+\varepsilon1+ε on every task of xˉ\bar xxˉ, and agent 2's type is unchanged. Then

x(t^)=x(t).x(\hat t) = x(t).x(t^)=x(t).

This is the step that forces a truthful mechanism to keep a poor allocation on an instance where a much better one exists.

Formalization Note The paper's agents 1 and 2 are 0 and 1 in Fin 2. The all-ones vector, the set xxx and the perturbed vector t^\hat tt^ are binders fixed by equations. The hypotheses k≥3k\ge3k≥3 and ∣x1(t)∣≤∣x2(t)∣|x^1(t)|\le|x^2(t)|∣x1(t)∣≤∣x2(t)∣ are the paper's standing assumptions for the claim (the latter is its "without loss of generality").

Preamble
import Mathlib
import Definitions.Def_AlgMechDesign_LowerBound_Model
Formal statement
namespace AlgMechDesign.LowerBound

/-- Claim 4.8: two agents (the paper's agents 1 and 2 are `0` and `1`), `k ≥ 3` tasks, a
truthful direct mechanism, `t` the all-ones type vector with `|x¹(t)| ≤ |x²(t)|`, `x = x¹(t)`.
For `0 < ε < 1`, let `t̂` lower agent 1's times to `ε` on `x` and raise them to `1 + ε` on the
complement. Then the mechanism allocates at `t̂` exactly as at `t`. -/
theorem claim_4_8 {k : ℕ} (hk : 3 ≤ k) (alloc : (Fin 2 → Fin k → ℝ) → (Fin k → Fin 2))
    (pay : (Fin 2 → Fin k → ℝ) → Fin 2 → ℝ) (htruth : IsTruthful alloc pay)
    (t : Fin 2 → Fin k → ℝ) (ht : t = fun _ _ => 1)
    (hcard : (taskSet (alloc t) 0).card ≤ (taskSet (alloc t) 1).card)
    (x : Finset (Fin k)) (hx : x = taskSet (alloc t) 0)
    (ε : ℝ) (hε0 : 0 < ε) (hε1 : ε < 1)
    (that : Fin 2 → Fin k → ℝ)
    (hthat : that = Function.update t 0 (fun j => if j ∈ x then ε else 1 + ε)) :
    alloc that = alloc t := by sorry

end AlgMechDesign.LowerBound
Source
Nisan, Ronen, Algorithmic Mechanism Design, Games Econ. Behav. 35, 2001, p. 179, Notation t(X ->^i alpha), setting paragraph and Claim 4.8
Human review
  • Endorsed by Shuze Chen · Oct 1, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 1, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me