Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Sets sumfree in a group, and the jump sequence ΔX\Delta XΔX of the grid X={u+Mj}X = \{u + Mj\}X={u+Mj}

Definition
ClassicalSchurLift

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

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

This bundle defines the objects of the lift from the group Zm1×Zm2\mathbb{Z}_{m_1} \times \mathbb{Z}_{m_2}Zm1​​×Zm2​​ to block-sum sets (Lemma 3 of the note).

  1. Let GGG be a set with an addition; in the mission G=Zm1×Zm2G = \mathbb{Z}_{m_1} \times \mathbb{Z}_{m_2}G=Zm1​​×Zm2​​, where Zm\mathbb{Z}_mZm​ denotes the integers modulo mmm. A subset S⊆GS \subseteq GS⊆G is sumfree in GGG (Lean GroupSumFree) if x+y∉Sx + y \notin Sx+y∈/S for all x,y∈Sx, y \in Sx,y∈S, with the sum taken in GGG and x=yx = yx=y allowed.
  2. For m1,M,L∈Nm_1, M, L \in \mathbb{N}m1​,M,L∈N put (Lean liftPrefix m₁ M L) xL=(L mod m1)+M⌊L/m1⌋x_L = (L \bmod m_1) + M \lfloor L/m_1 \rfloorxL​=(Lmodm1​)+M⌊L/m1​⌋. If L=jm1+uL = j m_1 + uL=jm1​+u with 0≤u≤m1−10 \le u \le m_1 - 10≤u≤m1​−1, then xL=u+Mjx_L = u + MjxL​=u+Mj.
  3. For m1,m2,M∈Nm_1, m_2, M \in \mathbb{N}m1​,m2​,M∈N, the lifted sequence (Lean liftSeq m₁ m₂ M) is the sequence of the m1m2−1m_1 m_2 - 1m1​m2​−1 successive differences of x0,x1,…,xm1m2−1x_0, x_1, \dots, x_{m_1 m_2 - 1}x0​,x1​,…,xm1​m2​−1​:
A=(x1−x0, x2−x1, …, xm1m2−1−xm1m2−2).A = \bigl(x_1 - x_0,\ x_2 - x_1,\ \dots,\ x_{m_1 m_2 - 1} - x_{m_1 m_2 - 2}\bigr).A=(x1​−x0​, x2​−x1​, …, xm1​m2​−1​−xm1​m2​−2​).

When m1≥1m_1 \ge 1m1​≥1 and M≥m1M \ge m_1M≥m1​, the numbers x0<x1<⋯<xm1m2−1x_0 < x_1 < \dots < x_{m_1 m_2 - 1}x0​<x1​<⋯<xm1​m2​−1​ are the elements, in increasing order, 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},

and A=ΔXA = \Delta XA=ΔX is the sequence of successive jumps of XXX in the sense of Definition 2.6 of Eliahou and Revuelta. It consists of m2m_2m2​ runs of m1−1m_1 - 1m1​−1 entries equal to 111, separated by m2−1m_2 - 1m2​−1 entries equal to M−m1+1M - m_1 + 1M−m1​+1. For example, m1=m2=7m_1 = m_2 = 7m1​=m2​=7 and M=19M = 19M=19 give seven runs of six entries 111 separated by six entries 131313: a sequence of length 484848 and sum 120120120.

The lift turns a cover of the nonzero elements of Zm1×Zm2\mathbb{Z}_{m_1} \times \mathbb{Z}_{m_2}Zm1​​×Zm2​​ by sets that are sumfree in the group into a sequence of positive integers whose block sums have small Schur degree and whose prefix averages are bounded. It is the source of the lower bound L(5)≥49L(5) \ge 49L(5)≥49.

Formalization Note The predicate GroupSumFree is stated for any type with an addition, and Zm\mathbb{Z}_mZm​ is Mathlib's ZMod m. liftPrefix and liftSeq are defined for all parameters: the differences use truncated subtraction on N\mathbb{N}N, the length m1m2−1m_1 m_2 - 1m1​m2​−1 is 000 when m1m2=0m_1 m_2 = 0m1​m2​=0, and for m1=0m_1 = 0m1​=0 Lean's conventions L mod 0=LL \bmod 0 = LLmod0=L and ⌊L/0⌋=0\lfloor L/0 \rfloor = 0⌊L/0⌋=0 apply. The theorems of the mission use them only with m1≥1m_1 \ge 1m1​≥1 and M≥m1M \ge m_1M≥m1​, where the description as ΔX\Delta XΔX holds.

Definition code
-- Generated from lean/ClassicalSchur/Lift.lean by skeleton
-- subtraction: every declaration except the def-material below is deleted,
-- and project imports are rewritten to their platform Definitions bundles.
import Mathlib

namespace ClassicalSchur



/-- A subset of an additive group is sumfree in the group when it has no
`x, y, z` with `x + y = z` (`x = y` allowed). -/
def GroupSumFree {G : Type*} [Add G] (S : Set G) : Prop := ∀ x ∈ S, ∀ y ∈ S, x + y ∉ S

/-- The `L`-th element, in increasing order, of `X = {u + M·j}`: with
`L = j·m₁ + u` and `u < m₁` it is `u + M·j`. -/
def liftPrefix (m₁ M L : ℕ) : ℕ := L % m₁ + M * (L / m₁)

/-- The sequence `A = ΔX` of jumps of `X = {u + M·j : u < m₁, j < m₂}`. -/
def liftSeq (m₁ m₂ M : ℕ) : List ℕ :=
  (List.range (m₁ * m₂ - 1)).map fun k => liftPrefix m₁ M (k + 1) - liftPrefix m₁ M k

end ClassicalSchur
Source
S. Eliahou and M. P. Revuelta, "The Schur degree of additive sets", Discrete Math. 344(5) (2021) 112332, https://doi.org/10.1016/j.disc.2021.112332 (preprint arXiv:2006.01502), Definition 2.6 (the sequence ΔX of successive jumps of a finite set X ⊂ ℤ). 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 (sets sumfree in an abelian group; Lemma 4.1: the grid X = {u + M·j} and A = ΔX). Lean source: https://github.com/mysticflounder/schur-degree-block-sums/blob/v1.0.1/lean/ClassicalSchur/Lift.lean#L25-L35 (release v1.0.1, doi:10.5281/zenodo.22987688).

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