1 The Foundations:Logic and Proofs 1
1.1 Propositional Logic 1
1.2 Propositional Equivalences 21
1.3 Predicates and Quantifiers 30
1.4 Nested Quantifiers 50
1.5 Rules of Inference 63
1.6 Introduction to Proofs 75
1.7 Proof Methods and Strategy 86
End-of-Chapter Material 104
2 Basic Structures:Sets,Functions,Sequences,and Sums 111
2.1 Sets 111
2.2 Set Operations 121
2.3 Functions 133
2.4 Sequences and Summations 149
End-of-Chapter Material 163
3 The Fundamentals:Algorithms,the Integers,and Matrices 167
3.1 Algorithms 167
3.2 The Growth of Functions 180
3.3 Complexity of Algorithms 193
3.4 The Integers and Division 200
3.5 Primes and Greatest Common Divisors 210
3.6 Integers and Algorithms 219
3.7 Applications of Number Theory 231
3.8 Matrices 246
End-of-Chapter Material 257
4 Induction and Recursion 263
4.1 Mathematical Induction 263
4.2 Strong Induction and Well-Ordering 283
4.3 Recursive Definitions and Structural Induction 294
4.4 Recursive Algorithms 311
4.5 Program Correctness 322
End-of-Chapter Material 328
5 Counting 335
5.1 The Basics of Counting 335
5.2 The Pigeonhole Principle 347
5.3 Permutations and Combinations 355
5.4 Binomial Coefficients 363
5.5 Generalized Permutations and Combinations 370
5.6 Generating Permutations and Combinations 382
End-of-Chapter Material 386
6 Discrete Probability 393
6.1 An Introduction to Discrete Probability 393
6.2 Probability Theory 400
6.3 Bayes’ Theorem 417
6.4 Expected Value and Variance 426
End-of-Chapter Material 442
7 Advanced Counting Techniques 449
7.1 Recurrence Relations 449
7.2 Solving Linear Recurrence Relations 460
7.3 Divide-and-Conquer Algorithms and Recurrence Relations 474
7.4 Generating Functions 484
7.5 Inclusion-Exclusion 499
7.6 Applications of Inclusion-Exclusion 505
End-of-Chapter Material 513
8 Relations 519
8.1 Relations and Their Properties 519
8.2 n-ary Relations and Their Applications 530
8.3 Representing Relations 537
8.4 Closures of Relations 544
8.5 Equivalence Relations 555
8.6 Partial Orderings 566
End-of-Chapter Material 581
9 Graphs 589
9.1 Graphs and Graph Models 589
9.2 Graph Terminology and Special Types of Graphs 597
9.3 Representing Graphs and Graph Isomorphism 611
9.4 Connectivity 621
9.5 Euler and Hamilton Paths 633
9.6 Shortest-Path Problems 647
9.7 Planar Graphs 657
9.8 Graph Coloring 666
End-of-Chapter Material 675
10 Trees 683
10.1 Introduction to Trees 683
10.2 Applications of Trees 695
10.3 Tree Traversal 710
10.4 Spanning Trees 724
10.5 Minimum Spanning Trees 737
End-of-Chapter Material 743
11 Boolean Algebra 749
11.1 Boolean Functions 749
11.2 Representing Boolean Functions 757
11.3 Logic Gates 760
11.4 Minimization of Circuits 766
End-of-Chapter Material 781
12 Modeling Computation 785
12.1 Languages and Grammars 785
12.2 Finite-State Machines with Output 796
12.3 Finite-State Machines with No Output 804
12.4 Language Recognition 817
12.5 Turing Machines 827
End-of-Chapter Material 838
Appendixes 1
A-1 Axioms for the Real Numbers and the Positive Integers 1
A-2 Exponential and Logarithmic Functions 7
A-3 Pseudocode 10
Suggested Readings 1
Answers to Odd-Numbered Exercises ? 1
Index of Biographies 1
Index 2