1 Fundamentals 1
1.1 Sets and Subsets 1
1.2 Operations on Sets 5
1.3 Sequences 13
1.4 Division in the Integers 21
1.5 Matrices 30
1.6 Mathematical Structures 38
2.1 Propositions and Logical Operations 46
2 Logic 46
2.2 Conditional Statements 52
2.3 Methods of Proof 58
2.4 Mathematical Induction 64
3 Counting 73
3.1 Permutations 73
3.2 Combinations 78
3.3 Pigeonhole Principle 83
3.4 Elements of Probability 86
3.5 Recurrence Relations 95
4 Relations and Digraphs 103
4.1 Product Sets and Partitions 103
4.2 Relations and Digraphs 107
4.3 Paths in Relations and Digraphs 115
4.4 Properties of Relations 121
4.5 Equivalence Relations 128
4.6 Computer Representation of Relations and Digraphs 133
4.7 Operations on Relations 140
4.8 Transitive Closure and Warshall s Algorithm 150
5 Functions 161
5.1 Functions 161
5.2 Functions for Computer Science 170
5.3 Growth of Functions 175
5.4 Permutation Functions 180
6 Order Relations and Structures 191
6.1 Partially Ordered Sets 191
6.2 Extremal Elements of Partially Orderd Sets 202
6.3 Lattices 207
6.4 Finite Boolean Algebras 217
6.5 Functions on Boolean Algebras 225
6.6 Circuit Designs 229
7 Trees 245
7.1 Trees 245
7.2 Labeled Trees 250
7.3 Tree Searching 254
7.4 Undirected Trees 264
7.5 Minimal Spanning Trees 271
8.1 Graphs 280
8 Topics in Graph Theory 280
8.2 Euler Paths and Circuits 286
8.3 Hamiltonian Paths and Circuits 293
8.4 Transport Networks 297
8.5 Matching Problems 305
8.6 Coloring Graphs 311
9 Semigroups and Groups 319
9.1 Binary Operations Revisited 319
9.2 Semigroups 324
9.3 Products and Quotients of Semigroups 331
9.4 Grouos 338
9.5 Products and Quotients of Groups 349
10 Languages and Finite-State Machines 357
10.1 Languages 357
10.2 Representations of Special Grammars and Languages 366
10.3 Finite-State Machines 375
10.4 Semigroups, Machines, and Languages 381
10.5 Machines and Regular Languages 386
10.6 Simplification of Machines 393
11 Groups and Coding 401
11.1 Coding of Binary Information and Error Detection 401
11.2 Decoding and Error Correction 413
Appendix A: Algorithms and Pseudocode 425
Appendix B: Experiments in Discrete Mathematics 438
Answers to Odd-Numbered Exercises 455
Answers to Chapter Self-Tests 489
Index 502