Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Olson (30) iterated: c∈nA⇒λ(c)≤nαc\in nA\Rightarrow\lambda(c)\le n\alphac∈nA⇒λ(c)≤nα

Proved
Erdos131.card_translate_sdiff_nsmul_le

by moutei · Sep 22, 2026 · Mathlib 0df444a (Lean v4.33.1)

additive-combinatoricserdos-131group-theory

Let GGG be an abelian group, S⊆GS\subseteq GS⊆G finite, and write λS(g)=∣(S+g)∖S∣\lambda_S(g)=|(S+g)\setminus S|λS​(g)=∣(S+g)∖S∣. Let A⊆GA\subseteq GA⊆G be finite with 0∈A0\in A0∈A, and suppose

λS(a)≤αfor every a∈A.\lambda_S(a)\le \alpha\qquad\text{for every }a\in A .λS​(a)≤αfor every a∈A.

Then for every n≥0n\ge 0n≥0 and every ccc in the nnn-fold sumset nA=A+⋯+AnA=A+\cdots+AnA=A+⋯+A,

λS(c) ≤ n α.\lambda_S(c)\ \le\ n\,\alpha .λS​(c) ≤ nα.

This is the sentence "since c∈nAc\in nAc∈nA implies λ(c)≤nα\lambda(c)\le n\alphaλ(c)≤nα 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 rArArA be summed: an element reached in nnn steps from AAA costs at most nnn times the maximum α=max⁡iλ(ai)\alpha=\max_i\lambda(a_i)α=maxi​λ(ai​). Equation (30) itself is the subadditivity λ(x+y)≤λ(x)+λ(y)\lambda(x+y)\le\lambda(x)+\lambda(y)λ(x+y)≤λ(x)+λ(y).

Proof idea. Induction on nnn. For n=0n=0n=0 the sumset 0A0A0A is {0}\{0\}{0} and λS(0)=0\lambda_S(0)=0λS​(0)=0. For the step, (n+1)A=nA+A(n+1)A=nA+A(n+1)A=nA+A, so c=x+ac=x+ac=x+a with x∈nAx\in nAx∈nA and a∈Aa\in Aa∈A, and subadditivity gives λS(c)≤λS(x)+λS(a)≤nα+α\lambda_S(c)\le\lambda_S(x)+\lambda_S(a)\le n\alpha+\alphaλS​(c)≤λS​(x)+λS​(a)≤nα+α.

Formalisation notes. The nnn-fold sumset is the pointwise n • A of Finset G under open scoped Pointwise, which is the iterated sumset A+⋯+AA+\cdots+AA+⋯+A (not the dilate {na:a∈A}\{na : a\in A\}{na:a∈A}); the convention 0 • A = {0} is what makes the base case true. The hypothesis 0∈A0\in A0∈A is Olson's standing assumption on A={0,a1,…,aw}A=\{0,a_1,\dots,a_w\}A={0,a1​,…,aw​} in §4 and is kept for faithfulness to the source, but it is not used in the proof: the bound holds for any finite AAA, and with 0∈A0\in A0∈A it additionally means the shells nAnAnA increase. The bound is stated with an arbitrary natural number α\alphaα satisfying λS(a)≤α\lambda_S(a)\le\alphaλS​(a)≤α on AAA rather than with the maximum itself, so that it can be applied to any upper bound for the λS(ai)\lambda_S(a_i)λS​(ai​).

Preamble
import Definitions.Def_Erdos131_NonDividing
import Mathlib.Tactic
open Erdos131
open scoped Pointwise
Formal statement
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
Source
J. E. Olson, Sums of sets of group elements, Acta Arithmetica 28 (1975), 147-156; http://matwbn.icm.edu.pl/ksiazki/aa/aa28/aa2825.pdf . Section 4, p. 155: equation (32) (resp. the consequence of equation (30) used there), inside the proof of Lemma 3.1.

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