The main contribution of this work is a new type of graph product, which we call the zig-zag
product. Taking a product of a large graph with a small graph, the resulting graph inherits
(roughly) its size from the large one, its degree from the small one, and its expansion properties
from both! Iteration yields simple explicit constructions of constant-degree expanders of every
size, starting from one constant-size expander.
Crucial to our intuition (and simple analysis) of the properties of this graph product is the view
of expanders as functions which act as "entropy wave" propagators --- they transform probability
distributions in which entropy is concentrated in one area to distributions where that
concentration is dissipated. In these terms, the graph product affords the constructive
interference of two such waves.
A variant of this product can be applied to extractors, giving the first explicit extractors whose
seed length depends (poly)logarithmically on only the entropy deficiency of the source (rather than
its length) and that extract almost all the entropy of high min-entropy sources. These high
min-entropy extractors have several interesting applications, including the first constant-degree
explicit expanders which beat the "eigenvalue bound."