§4.2, proof of Theorem 4.4 — Y_1 and Y_2 each contain at most r − 1 goods of S′_{r−1} ∖ S′_0
ProvedRoundRobinEq.SubmodularEF1.parity_splitLet be a profile of rankings over goods, an agent, any ranking, and () the goods allocated in steps of Round-Robin. Let be another agent, its bundle in Round-Robin, and write with the goods indexed in the order in which they are allocated in Round-Robin. Split into
Then for every ,
and each of , contains at most goods of .
This is the counting step of the proof of Theorem 4.4: together with the greedy choice of agent 's deviation it yields inequality (2).
Formalization Note The enumeration is a function y : ℕ → M with IsTimeOrderedEnum σ' (roundRobin σ j) k y: y 0, …, y (k-1) lists without repetition, and a good with a larger index is never allocated earlier in Round-Robin. The paper's is y (a-1), so is Yone y k (0-based indices ) and is Ytwo y k (0-based indices ). With 0-based (the paper's ) the bounds read ≤ r for r < k, and the difference is taken in . The statement holds for every ranking in place of and involves no valuations.
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
/-- §4.2, p. 20, proof of Theorem 4.4 (parity split), for an arbitrary deviation `τ` of agent `i`:
list `A_j` (`j ≠ i`) as `y 0, …, y (k−1)` in order of allocation in Round-Robin(τ, σ_{−i}) and split
`A_j \ {y 0}` into `Y_1` (`y 2, y 4, …`) and `Y_2` (`y 1, y 3, …`). Then for every `r < k` the numbers
of goods of `Y_1` and of `Y_2` in `S′_r \ S′_0` differ by at most one and are each at most `r`
(the paper's `r − 1` for `S′_{r−1}`, `r ∈ [k]`). -/
theorem parity_split {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) (hji : j ≠ i)
(y : ℕ → M) (hy : IsTimeOrderedEnum (Function.update σ i τ) (roundRobin σ j) k y)
(r : ℕ) (hr : r < k) :
let D := allocBefore (Function.update σ i τ) (r * n + i.val) \
allocBefore (Function.update σ i τ) i.val
|((Yone y k ∩ D).card : ℤ) - ((Ytwo y k ∩ D).card : ℤ)| ≤ 1 ∧
(Yone y k ∩ D).card ≤ r ∧ (Ytwo y k ∩ D).card ≤ r := by sorry
end RoundRobinEq.SubmodularEF1
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.