Claim 4.11 — lowering agent 's times keeps every task of with agent
ProvedAlgMechDesign.Additive.claim_4_11Let be a truthful additive mechanism for task scheduling, and let be the type vector with for every agent and task . Fix an agent , let and let be its complement. For let
the type vector obtained from by setting for and for , all other agents unchanged. Assume that the empty set is attainable for agent against (some positive declaration of agent makes the mechanism give it no task). Then
In the proof of Theorem 4.10 this is applied to an agent holding at least tasks at , and it forces that agent to keep them after its times drop.
Formalization Note The paper states the claim for agent after a relabelling; here it is stated for an arbitrary agent . The hypothesis that is attainable is added: without it the claim as printed is false (a mechanism that always gives agent exactly its cheapest tasks and pays nothing is truthful and additive, and at with and it trades a task of for a cheaper task of ). The paper's proof uses it implicitly through "the price offered to agent 1 for is strictly greater than ". Under the hypothesis of Theorem 4.10 that the mechanism is a -approximation, is attainable for every agent when .
import Mathlib import Definitions.Def_AlgMechDesign_Additive_Model import Definitions.Def_AlgMechDesign_Additive_Price
namespace AlgMechDesign.Additive
/-- Claim 4.11, p. 180, for an arbitrary agent `i`: let `t` be the all-ones type vector,
`x = xⁱ(t)`, `0 < ε < 1` and `t̂ = t(x →ⁱ 1 - ε, x̄ →ⁱ ε)`. For a truthful additive mechanism
under which the empty set is attainable for agent `i` against `t⁻ⁱ`, `xⁱ(t̂) ⊇ xⁱ(t)`. -/
theorem claim_4_11 {n k : ℕ} (alloc : (Fin n → Fin k → ℝ) → (Fin k → Fin n))
(pay : (Fin n → Fin k → ℝ) → Fin n → ℝ) (htr : IsTruthful alloc pay)
(hadd : IsAdditive alloc pay) (i : Fin n)
(hempty : IsAttainable alloc i (fun _ _ => (1 : ℝ)) ∅)
(ε : ℝ) (hε₀ : 0 < ε) (hε₁ : ε < 1) :
taskSet (alloc (fun _ _ => (1 : ℝ))) i ⊆
taskSet (alloc (Function.update (fun _ _ => (1 : ℝ)) i
(fun j => if j ∈ taskSet (alloc (fun _ _ => (1 : ℝ))) i then 1 - ε else ε))) i := by sorry
end AlgMechDesign.Additive
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.