As the above discussion shows, the known proofs of Szemer´edi’s theorem are extremely diverse. However, they do share a number of common themes, principal among which is the establishment of a dichotomy between randomness and structure . Indeed, in an ex- tremely abstract and heuristic sense, one can describe all the known proofs of Szemer´edi’s theorem collectively as follows. Start with the set A (or some other object which is a proxy for A , e.g. a graph, a hypergraph, or a measure-preserving system). For the object under consideration, define some concept of randomness (e.g. ε -regularity, uniformity, small Fourier coefficients, or weak mixing), and some concept of structure (e.g. a nested sequence of arithmetically structured sets such as progressions or Bohr sets, or a partition of a vertex set into a controlled number of pieces, a collection of large Fourier coefficients, a sequence of almost periodic functions, a tower of compact extensions of the trivial fac- tors, or a k − 2-step nilfactor). Obtain some sort of structure theorem that splits the object into a structured component, plus an error which is random relative to that struc- tured component. To prove Szemer´edi’s theorem (or a variant thereof), one then needs to obtain some sort of generalized von Neumann theorem to eliminate the random error, and then some sort of structured recurrence theorem for the structured component.