This book provides a postgraduate audience the keys they need to understand and further develop a set of tools for the efficient computation of lower bounds and valid inequalities in integer programs and combinatorial optimization problems. After discussing the classical approaches described in the literature, the book addresses how to extend these tools to other non-standard formulations that may be applied to a broad set of applications. Examples are provided to illustrate the underlying concepts and to pave the way for future contributions.