1 Fundamentals 1
1.1 Sets and Subsets 1
1.2 Operations on Sets 5
1.3 Sequences 14
1.4 Division in the Integers 22
1.5 Matrices 30
1.6 Mathematical Structures 39
2 Logic 46
2.1 Propositions and Logical Operations 46
2.2 Conditional Statements 52
2.3 Methods of Proof 58
2.4 Mathematical Induction 64
3 Counting 72
3.1 Permutations 72
3.2 Combinations 78
3.3 The Pigeonhole Principle 82
3.4 Elements of Probability 85
3.5 Recurrence Relations 95
4 Relations and Digraphs 101
4.1 Product Sets and Partitions 101
4.2 Relations and Digraphs 106
4.3 Paths in Relations and Digraphs 116
4.4 Properties of Relations 124
4.5 Equivalence Relations 131
4.6 Computer Representation of Relations and Digraphs 136
4.7 Manipulation of Relations 146
4.8 Transitive Closure and Warshall's Algorithm 157
5 Functions 167
5.1 Functions 167
5.2 Functions for Computer Science 177
5.3 Permutation Functions 181
5.4 Growth of Functions 190
6 Topics in Graph Theory 197
6.1 Graphs 197
6.2 Euler Paths and Circuits 204
6.3 Hamiltonian Paths and Circuits 213
6.4 Coloring Graphs 218
7 Order Relations and Structures 225
7.1 Partially Ordered Sets 225
7.2 Extremal Elements of Partially Ordered Sets 239
7.3 Lattices 246
7.4 Finite Boolean Algebras 259
7.5 Functions on Boolean Algebras 266
7.6 Boolean Functions as Boolean Polynomials 271
8 Trees 286
8.1 Trees 286
8.2 Labeled Trees 292
8.3 Tree Searching 299
8.4 Undirected Trees 310
8.5 Minimal Spanning Trees 321
9 Semigroups and Groups 329
9.1 Binary Operations Revisited 329
9.2 Semigroups 334
9.3 Products and Quotients of Semigroups 342
9.4 Groups 349
9.5 Products and Quotients of Groups 361
10 Languages and Finite-State Machines 368
10.1 Languages 368
10.2 Representations of Special Languages and Grammars 378
10.3 Finite-State Machines 391
10.4 Semigroups,Machines,and Languages 398
10.5 Machines and Regular Languages 404
10.6 Simplification of Machines 412
11 Groups and Coding 420
11.1 Coding of Binary Information and Error Detection 420
11.2 Decoding and Error Correction 432
Appendix A Algorithms and Pseudocode 444
Appendix B Experiments in Discrete Mathematics 458
Answers to Odd-Numbered Exercises 477
Index 513