Source: https://www.math.cmu.edu/~af1p/Teaching/AdditiveCombinatorics/Tao.pdf