Theory explores the mathematical ideas that let us define, reason about, and reuse computer programs.