Subset sums of a disjoint union form the sumset of the subset sums
ProvedErdos131.subsetSums_unionLet be an abelian group and let be disjoint finite sets. Then the set of subset sums of their union is exactly the sumset of their sets of subset sums:
where and is the pointwise sumset.
Both inclusions are immediate once the right decomposition is named. A subset splits as into two disjoint pieces, so its sum is the sum over plus the sum over ; conversely, given and , disjointness of and makes and disjoint, so has sum .
This identity is the interface between the two classical ingredients of the Erdős–Lev–Rauzy–Sándor–Sárközy argument. One splits a zero-sum-free sequence into blocks of distinct elements, bounds the subset sums of each block from below by Olson's theorem, and then has to combine the blocks; the identity turns that combination into a statement about a sumset, which is precisely what an addition theorem of Kemperman–Scherk type can bound. Disjointness cannot be dropped: for with of infinite order, has two elements while has three.
Formalization Note. Throughout, the set of subset sums of a finite set in an abelian group is rendered as A.powerset.image (fun S => ∑ x ∈ S, x), the image of the powerset of under the summation map. The empty subset is included, so always belongs to it. The sumset on the right is Finset pointwise addition, so the ambient preamble opens the Pointwise scope.
import Definitions.Def_Erdos131_NonDividing import Mathlib.Tactic open Erdos131 open scoped Pointwise
theorem Erdos131.subsetSums_union {G : Type*} [AddCommGroup G] [DecidableEq G]
{A B : Finset G} (hd : Disjoint A B) :
((A ∪ B).powerset.image fun S => ∑ x ∈ S, x)
= (A.powerset.image fun S => ∑ x ∈ S, x) + (B.powerset.image fun S => ∑ x ∈ S, x) := by sorry