Revision with unchanged content. Mathematically proving programs is hard and time-consuming. Although there exist a number of formal approaches to software engineering, they do not leverage the most beneficial concept in software engineering: Reuse of software elements, not only in terms of functionality, but also as mathematically proven units. In this book we develop a framework of reusable mathematical models for EIFFEL contracts, enabling rigorous reusable specifications using the Design by Contract(TM) method. We introduce the Intermediate Functional Language (IFL), based on the EIFFEL language and specifically designed to support high-level mathematical structures. To give a proof of concept, we complete specifications for parts of the ISE EiffelBase library. The principal contribution of this book is the Mathematical Model Library (MML) that enables powerful and expressive model contracts in IFL. We present tools that help extracting proof obligations from specifications. This book addresses advanced software engineers and researchers interested in automatic proofs of programs and components, as well as software developers focusing on processes of specifying complex software systems.