Olson (30) iterated:
ProvedErdos131.card_translate_sdiff_nsmul_leLet be an abelian group, finite, and write . Let be finite with , and suppose
Then for every and every in the -fold sumset ,
This is the sentence "since implies by (30)" in the proof of Olson's Lemma 3.1 (Acta Arith. 28 (1975), p. 155), which is what lets the shell decomposition of be summed: an element reached in steps from costs at most times the maximum . Equation (30) itself is the subadditivity .
Proof idea. Induction on . For the sumset is and . For the step, , so with and , and subadditivity gives .
Formalisation notes. The -fold sumset is the pointwise n • A of Finset G under open scoped Pointwise, which is the iterated sumset (not the dilate ); the convention 0 • A = {0} is what makes the base case true. The hypothesis is Olson's standing assumption on in §4 and is kept for faithfulness to the source, but it is not used in the proof: the bound holds for any finite , and with it additionally means the shells increase. The bound is stated with an arbitrary natural number satisfying on rather than with the maximum itself, so that it can be applied to any upper bound for the .
import Definitions.Def_Erdos131_NonDividing import Mathlib.Tactic open Erdos131 open scoped Pointwise
theorem Erdos131.card_translate_sdiff_nsmul_le {G : Type*} [AddCommGroup G] [DecidableEq G]
(S A : Finset G) (hA : (0 : G) ∈ A) (m : ℕ)
(hm : ∀ x ∈ A, ((S.image fun s => x + s) \ S).card ≤ m)
(n : ℕ) (c : G) (hc : c ∈ n • A) :
((S.image fun s => c + s) \ S).card ≤ n * m := by sorry