Olson's Theorem 3.1: quantitative arrangement bound
ProvedErdos131.olson_thm3_1Let be a set of distinct non-zero elements of an abelian group with , and for a sequence write
Olson's Theorem 3.1 asserts that there is an arrangement of the elements of and an index such that either , or both of the following hold.
(i) For all ,
where .
(ii) If then is a finite proper subgroup of and , where .
What is, and why the card does not carry it. is not given in closed form in the paper; it is defined inside the proof (equations (10)–(15)). Define and, for ,
For the first branch never wins and . For let be the largest integer with and ; then for , and
Olson then shows for every , which is precisely the slack that turns the constant of (i) into the constant of Theorem 3.2: .
Since is used downstream only through the bound , this card states (i) with in place of and with a strict inequality:
This is implied by Olson's (i) together with , so the card is a consequence of the source's statement and needs no new definition. It is still strong enough for Theorem 3.2: taking it gives , and in general it yields the paper's equation (16), with , which is exactly what the induction in Theorem 3.2 consumes.
Formalisation notes. In an abelian group depends only on the set , so an arrangement is recorded by its chain of prefixes : a function A : ℕ → Finset G with A 0 = ∅, A t ⊆ A (t+1), (A t).card = t for t ≤ s, and A s = S. A chain of this shape is the same data as an arrangement of . Then is (A t).powerset.image (fun U => ∑ x ∈ U, x), the notation used throughout this mission, and is the subgroup generated by . The alternative is written as "every lies in that image", which is the correct reading in an infinite group as well. The comparison is made in ℕ∞, since can be infinite while is always finite.
Olson states the theorem for an arbitrary group; this card is the abelian case, which is the one this mission consumes.
import Definitions.Def_Erdos131_NonDividing import Mathlib.Tactic open Erdos131
theorem Erdos131.olson_thm3_1 {G : Type*} [AddCommGroup G] [DecidableEq G]
(S : Finset G) (s : ℕ) (hcard : S.card = s) (hs : 3 ≤ s)
(h0 : (0 : G) ∉ S) (hgen : AddSubgroup.closure (S : Set G) = ⊤) :
∃ A : ℕ → Finset G,
A 0 = ∅ ∧ A s = S ∧ (∀ t, A t ⊆ A (t + 1)) ∧ (∀ t ≤ s, (A t).card = t) ∧
∃ q : ℕ, 2 ≤ q ∧ q ≤ s ∧
((∀ g : G, g ∈ (A (s - 1)).powerset.image fun U => ∑ x ∈ U, x) ∨
((∀ t, 2 ≤ t → t ≤ q →
4 + (((s : ℝ) - 2) * ((s : ℝ) + 3)
- ((s : ℝ) - (t : ℝ)) * ((s : ℝ) - (t : ℝ) + 5)) / 8
- (s : ℝ) ^ 2 / 72
< (((A t).powerset.image fun U => ∑ x ∈ U, x).card : ℝ)) ∧
(q < s →
(AddSubgroup.closure ((S \ A q : Finset G) : Set G) : Set G).Finite ∧
AddSubgroup.closure ((S \ A q : Finset G) : Set G) ≠ ⊤ ∧
((AddSubgroup.closure ((S \ A q : Finset G) : Set G) : Set G).encard <
2 * min ((((A q).powerset.image fun U => ∑ x ∈ U, x).card : ℕ) : ℕ∞)
((((A q).powerset.image fun U => ∑ x ∈ U, x : Finset G) : Set G)ᶜ.encard))))) := by sorry