By far the most intuitive and readable book I've ever laid my eyes on about discrete mathematics. Goes through sets, relations, probability, data structures, combinatorics, types of numbers, propositional and predicate logic, and proofs in a way that continues to build upon the other. In addition, putting proofs at the end instead of interspersing the book with it is an excellent choice for readability and understanding, I cannot give enough praise to the formatting and presentation of ideas in this book.