Book description: The purpose of this book is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming. Throughout the text, abstract concepts are linked to concrete representations in Haskell. Everything one has to know about programming in Haskell to understand the examples in the book is explained as we go along, but we do not cover every aspect of the language. Haskell is a marvelous demonstration tool for logic and maths because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures. We do not assume that our readers have previous experience with either programming or construction of formal proofs. We do assume previous acquaintance with mathematical notation, at the level of secondary school mathematics. Wherever necessary, we will recall relevant facts. Everything one needs to know about mathematical reasoning or programming is explained as we go along. We do assume that our readers are able to retrieve software from the Internet and install it, and that they know how to use an editor for constructing program texts.

Book description:
This book introduces the main topics of discrete mathematics with a strong emphasis on
applications to computer science. It uses computer programs to implement and illustrate
the mathematical ideas, helping the reader to gain a concrete understanding of the
abstract mathematics. The programs are also useful for practical calculations, and they
can serve as a foundation for larger software packages.
Designed for first and second year undergraduate students, the book is also ideally suited
to self-study. No prior knowledge of functional programming is required; the book and
the online documentation provide everything you will need.

Book description:Oriented matroids play the role of matrices in discrete geometry, when metrical properties, such as angles or distances, are neither required nor available. Thus they are of great use in such areas as graph theory, combinatorial optimization and convex geometry. The combination of concrete applications and computation, the profusion of illustrations, and the large number of examples and exercises will make this an ideal introductory text on the subject. It will also be valuable for self-study for mathematicians and computer scientists working in discrete and computational geometry.

Book description:Category Theory has, in recent years, become increasingly important and popular in computer science, and many universities now introduce Category Theory as part of the curriculum for undergraduate computer science students. Here, the theory is developed in a straightforward way, and is enriched with many examples from computer science.