This textbook presents fundamental topics in discrete mathematics introduced from the perspectives of a pure mathematician and an applied computer scientist. The synergy between the two complementary perspectives is seen throughout the book; key concepts are motivated and explained through real-world examples, and yet are still formalized with mathematical rigor. The book is an excellent introduction to discrete mathematics for computer science, software engineering, and mathematics students.The first author is a leading mathematician in the area of logic, computability, and theoretical computer science, with more than 25 years of teaching and research experience. The second author is a computer science PhD student at the University of Washington specializing in database systems. The father-and-daughter team merges two different views to create a unified book for students interested in learning discrete mathematics, the connections between discrete mathematics and computer science, and the mathematical foundations of computer science.Readers will learn how to formally define abstract concepts, reason about objects (such as programs, graphs and numbers), investigate properties of algorithms, and prove their correctness. The textbook studies several well-known algorithmic problems including the path problem for graphs and finding the greatest common divisor, inductive definitions, proofs of correctness of algorithms via loop invariants and induction, the basics of formal methods such as propositional logic, finite state machines, counting, probability, as well as the foundations of databases such as relational calculus.
The theory of finite automata on finite stings, infinite strings, and trees has had a dis tinguished history. First, automata were introduced to represent idealized switching circuits augmented by unit delays. This was the period of Shannon, McCullouch and Pitts, and Howard Aiken, ending about 1950. Then in the 1950s there was the work of Kleene on representable events, of Myhill and Nerode on finite coset congruence relations on strings, of Rabin and Scott on power set automata. In the 1960s, there was the work of Btichi on automata on infinite strings and the second order theory of one successor, then Rabin's 1968 result on automata on infinite trees and the second order theory of two successors. The latter was a mystery until the introduction of forgetful determinacy games by Gurevich and Harrington in 1982. Each of these developments has successful and prospective applications in computer science. They should all be part of every computer scientist's toolbox. Suppose that we take a computer scientist's point of view. One can think of finite automata as the mathematical representation of programs that run us ing fixed finite resources. Then Btichi's SIS can be thought of as a theory of programs which run forever (like operating systems or banking systems) and are deterministic. Finally, Rabin's S2S is a theory of programs which run forever and are nondeterministic. Indeed many questions of verification can be decided in the decidable theories of these automata.
The theory of finite automata on finite stings, infinite strings, and trees has had a dis tinguished history. First, automata were introduced to represent idealized switching circuits augmented by unit delays. This was the period of Shannon, McCullouch and Pitts, and Howard Aiken, ending about 1950. Then in the 1950s there was the work of Kleene on representable events, of Myhill and Nerode on finite coset congruence relations on strings, of Rabin and Scott on power set automata. In the 1960s, there was the work of Btichi on automata on infinite strings and the second order theory of one successor, then Rabin's 1968 result on automata on infinite trees and the second order theory of two successors. The latter was a mystery until the introduction of forgetful determinacy games by Gurevich and Harrington in 1982. Each of these developments has successful and prospective applications in computer science. They should all be part of every computer scientist's toolbox. Suppose that we take a computer scientist's point of view. One can think of finite automata as the mathematical representation of programs that run us ing fixed finite resources. Then Btichi's SIS can be thought of as a theory of programs which run forever (like operating systems or banking systems) and are deterministic. Finally, Rabin's S2S is a theory of programs which run forever and are nondeterministic. Indeed many questions of verification can be decided in the decidable theories of these automata.
This textbook presents fundamental topics in discrete mathematics introduced from the perspectives of a pure mathematician and an applied computer scientist. The synergy between the two complementary perspectives is seen throughout the book; key concepts are motivated and explained through real-world examples, and yet are still formalized with mathematical rigor. The book is an excellent introduction to discrete mathematics for computer science, software engineering, and mathematics students.The first author is a leading mathematician in the area of logic, computability, and theoretical computer science, with more than 25 years of teaching and research experience. The second author is a computer science PhD student at the University of Washington specializing in database systems. The father-and-daughter team merges two different views to create a unified book for students interested in learning discrete mathematics, the connections between discrete mathematics and computer science, and the mathematical foundations of computer science.Readers will learn how to formally define abstract concepts, reason about objects (such as programs, graphs and numbers), investigate properties of algorithms, and prove their correctness. The textbook studies several well-known algorithmic problems including the path problem for graphs and finding the greatest common divisor, inductive definitions, proofs of correctness of algorithms via loop invariants and induction, the basics of formal methods such as propositional logic, finite state machines, counting, probability, as well as the foundations of databases such as relational calculus.
Thank you for visiting our website. Would you like to provide feedback on how we could improve your experience?
This site does not use any third party cookies with one exception — it uses cookies from Google to deliver its services and to analyze traffic.Learn More.