Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Lift lemma: a sumfree qqq-cover of Zm1×Zm2∖{0}\mathbb{Z}_{m_1} \times \mathbb{Z}_{m_2} \setminus \{0\}Zm1​​×Zm2​​∖{0} gives a positive sequence of length m1m2−1m_1 m_2 - 1m1​m2​−1 with sdeg⁡(A^)≤q\operatorname{sdeg}(\hat A) \le qsdeg(A^)≤q

Proved
ClassicalSchur.lift_lemma

by mysticflounder · Sep 26, 2026 · Mathlib 0df444a (Lean v4.33.1)

additive-combinatoricscombinatoricsramsey-theoryschur-degree-block-sumssum-free-sets

This is Lemma 3 of the note: a lift from the finite abelian group Zm1×Zm2\mathbb{Z}_{m_1} \times \mathbb{Z}_{m_2}Zm1​​×Zm2​​ to sequences of positive integers.

Let m1,m2,q≥1m_1, m_2, q \ge 1m1​,m2​,q≥1 be natural numbers, let G=Zm1×Zm2G = \mathbb{Z}_{m_1} \times \mathbb{Z}_{m_2}G=Zm1​​×Zm2​​, and let M≥3m1−2M \ge 3m_1 - 2M≥3m1​−2. Suppose that C1,…,Cq⊆GC_1, \dots, C_q \subseteq GC1​,…,Cq​⊆G are sumfree in GGG (x+y∉Cix + y \notin C_ix+y∈/Ci​ for all x,y∈Cix, y \in C_ix,y∈Ci​, including x=yx = yx=y) and that every nonzero element of GGG lies in at least one CiC_iCi​. Let A=(a1,a2,… )A = (a_1, a_2, \dots)A=(a1​,a2​,…) be the lifted sequence of the Lift bundle, that is, the sequence of successive jumps of the grid X={u+Mj:0≤u≤m1−1, 0≤j≤m2−1}X = \{u + Mj : 0 \le u \le m_1 - 1,\ 0 \le j \le m_2 - 1\}X={u+Mj:0≤u≤m1​−1, 0≤j≤m2​−1}. Let A^\hat AA^ be the set of block sums of AAA, and sdeg⁡\operatorname{sdeg}sdeg the Schur degree. Then

sdeg⁡(A^)≤q,\operatorname{sdeg}(\hat A) \le q ,sdeg(A^)≤q,

and in full the statement has four parts:

  1. AAA has length ∣A∣=m1m2−1|A| = m_1 m_2 - 1∣A∣=m1​m2​−1;
  2. every entry of AAA is positive;
  3. sdeg⁡(A^)≤q\operatorname{sdeg}(\hat A) \le qsdeg(A^)≤q;
  4. for every LLL with 0≤L≤m1m2−10 \le L \le m_1 m_2 - 10≤L≤m1​m2​−1, the first LLL entries of AAA have sum a1+⋯+aL=(L mod m1)+M⌊L/m1⌋a_1 + \dots + a_L = (L \bmod m_1) + M \lfloor L/m_1 \rfloora1​+⋯+aL​=(Lmodm1​)+M⌊L/m1​⌋.

The lemma turns a cover of G∖{0}G \setminus \{0\}G∖{0} by sets sumfree in GGG into a sequence for the property of Definition 5.1 of Eliahou and Revuelta: with M=3m1−2M = 3m_1 - 2M=3m1​−2, part 4 bounds the average of every nonempty prefix of AAA by 333, and part 3 bounds the Schur degree of its block sums. These are the facts behind the lower bound L(n)≥m1m2L(n) \ge m_1 m_2L(n)≥m1​m2​ (Corollary 4 of the note).

Formalization Note The Lean statement differs from the note in three places. (1) The note assumes that the CiC_iCi​ partition G∖{0}G \setminus \{0\}G∖{0}; here they only need to cover the nonzero elements, a weaker hypothesis. (2) The note bounds the prefix sums by L⋅max⁡(1,M/m1)L \cdot \max(1, M/m_1)L⋅max(1,M/m1​) for 1≤L≤m1m2−11 \le L \le m_1 m_2 - 11≤L≤m1​m2​−1; part 4 gives their exact value, which implies that bound, and it includes L=0L = 0L=0. (3) Part 2 is implicit in the note, where AAA is the jump sequence of a set. The hypothesis q≥1q \ge 1q≥1 is also in the note: for q=0q = 0q=0 the statement fails at m1=m2=1m_1 = m_2 = 1m1​=m2​=1, where AAA is empty, A^=∅\hat A = \emptysetA^=∅ and sdeg⁡(∅)=1\operatorname{sdeg}(\emptyset) = 1sdeg(∅)=1.

Preamble
import Definitions.Def_ClassicalSchurBasic
import Definitions.Def_ClassicalSchurLift
import Mathlib

open ClassicalSchur

Formal statement
theorem ClassicalSchur.lift_lemma {m₁ m₂ q M : ℕ} (hm₁ : 0 < m₁) (hm₂ : 0 < m₂) (hq : 0 < q)
    (hM : 3 * m₁ - 2 ≤ M) (C : Fin q → Set (ZMod m₁ × ZMod m₂))
    (hC : ∀ i, GroupSumFree (C i)) (hcov : ∀ g : ZMod m₁ × ZMod m₂, g ≠ 0 → ∃ i, g ∈ C i) :
    (liftSeq m₁ m₂ M).length = m₁ * m₂ - 1 ∧ (∀ a ∈ liftSeq m₁ m₂ M, 0 < a) ∧
      sdeg (blockSums (liftSeq m₁ m₂ M)) ≤ q ∧
      ∀ L ≤ m₁ * m₂ - 1, ((liftSeq m₁ m₂ M).take L).sum = L % m₁ + M * (L / m₁) := by sorry
Source
A. McKenna, "The Schur degree of block sums: L(4) = 16 and L(5) ≥ 49", Zenodo (2026), https://doi.org/10.5281/zenodo.22987189, §4, Lemma 4.1, and §7 (Lemma 4.1 with the sequence given by its prefix sums x_L). Lean source: https://github.com/mysticflounder/schur-degree-block-sums/blob/v1.0.1/lean/ClassicalSchur/Lift.lean#L174-L184 (release v1.0.1, doi:10.5281/zenodo.22987688).
Human review
  • Endorsed by Shuze Chen · Sep 27, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mysticflounder · Sep 27, 2026

    Confirmed by the mission captain (proposal self-audit).

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