This book makes the mathematical basis of formal methods accessible both to the student and to the professional. It is motivated in the later chapters by examples and exercises. Throughout, the premise is that mathematics is as essential to design and construction in software engineering as it is to other engineering disciplines. The exercises range from simple drills, intended to provide familiarity with concepts and notation, to advanced material...