Lemma 4.7 — every agent gets at most 2(r − 1) goods of S′_{r−1} ∖ S′_0 in Round-Robin(≻)
ProvedRoundRobinEq.SubmodularEF1.lemma_4_7In the setting of Lemma 4.6 — a profile of rankings over goods, an agent , any ranking , and the sets of goods allocated in steps of Round-Robin — let be the allocation returned by Round-Robin. Then for every and every agent ,
No agent accumulates in the equilibrium allocation more than twice its fair share of the goods that the deviation run allocates between 's first and -th turns. This is the bound that makes the parity split of the proof of Theorem 4.4 work.
Formalization Note As for Lemma 4.6, the Lean statement holds for every ranking in place of and involves no valuations. With 0-based (the paper's ) it reads (roundRobin σ j ∩ (allocBefore σ' (r*n + i) \ allocBefore σ' i)).card ≤ 2 * r for r < k, where is allocBefore σ' i.
Formalization Note Agents are Fin n with (0-based: the paper's agent is i - 1), goods a finite type with , and the paper's standing simplification (p. 7) is the hypothesis hm : Fintype.card M = k * n; the paper calls it without loss of generality (dummy goods), and that reduction is not formalized. Steps of Round-Robin are 0-based: the paper's step is step (r-1)*n + (i-1), and the paper's , (goods allocated in steps ) are allocBefore σ (r*n + i) and allocBefore (Function.update σ i τ) (r*n + i) for the 0-based agent i. A ranking is a duplicate-free list of all goods; the deviating profile is Function.update σ i τ.
import Mathlib import Definitions.Def_RoundRobinEq_SubmodularEF1_Setting
namespace RoundRobinEq.SubmodularEF1
/-- Lemma 4.7, p. 19, for an arbitrary deviation `τ` of agent `i`: every agent `j` receives in
Round-Robin(σ) at most `2r` goods of `S′_r \ S′_0` for every `r < k` (the paper's
`|A_j ∩ (S′_{r−1} \ S′_0)| ≤ 2(r − 1)`, `r ∈ [k]`). -/
theorem lemma_4_7 {n : ℕ} [NeZero n] {M : Type} [Fintype M] [DecidableEq M]
(k : ℕ) (hm : Fintype.card M = k * n)
(σ : Fin n → List M) (hσ : ∀ ℓ, IsRanking (σ ℓ))
(i : Fin n) (τ : List M) (hτ : IsRanking τ) (j : Fin n) (r : ℕ) (hr : r < k) :
(roundRobin σ j ∩
(allocBefore (Function.update σ i τ) (r * n + i.val) \
allocBefore (Function.update σ i τ) i.val)).card ≤ 2 * r := by sorry
end RoundRobinEq.SubmodularEF1
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.