Read · 2 min
The well known result in the reals is also true modulo (at least when is prime), and it is called the Cauchy Davenport theorem. Of course, this is not quite true - is impossible, and when then . So we can write .
There are several proofs of the Cauchy Davenport theorem. One utilizes the amazing combinatorial nullstellensatz of Noga Alon.
The simplest, presented by Razvan Gelca at several MOPs, involves the ingenious use of the Dyson move. Assume , because else just throw out elements from until we obtain this state as this cannot increase . Consider the following two transformations:
-
Take constants and (possibly ) and change into (the set of for in ) while becomes (the set of for in ). This is a translation.
-
Replace the two sets and by the union of and , , and the intersection of and , , as long as is nonempty. Then rename and as and in some order.
These above two steps do not increase the size of and also do not change , and also do not make any set empty. This is clearly true for step , and for step it suffices to note that if we have for in intersect and in the union, then WLOG is in . Since is in , is in .
Note that applying transformation strictly increases even while is fixed, so at some point it will become impossible to apply transformation even after many translations. At this point WLOG .
Case 1: . Then apply transformation to WLOG that has and some nonzero (and fix ). Now, for any in , translate to while fixing . The element maps to which must be an element of , else we could successfully apply operation . So in implies in for some nonzero mod . Then take an element of and then , ,... are all in . But this represents a complete residue system mod (because is prime), so has all elements mod . But then so we're done.
Case 2: . Since originally for some , this is still true and . Then translate to have and we can write . So will be exactly and will have elements.
In all cases, we're done and the theorem is proved.