Logic and Discrete Mathematics: A Computer Science Perspective by Winfried Karl Grassmann
This text covers traditional topics of discrete mathematics - logic, sets, relations, functions, and graphs - and reflects recent trends in computer science. It covers logic reasoning and shows how to use discrete mathematics and logic for specifying new computer applications, and how to reason about programs in a systematic way. It also contains chapters on language and grammars, and relational databases and describes Prolog and Miranda.