This book covers all the traditional topics of discrete mathematics--logic, sets, relations, functions, and graphs--and reflects recent trends in computer science.Shows how to use discrete mathematics and logic for specifying new computer applications, and how to reason about programs in a systematic way. Describes Prolog, a programming language based on logic, and a section on Miranda, language bad on functions. Features numerous examples which relate the mathematical concepts to problems in computer science.