*(English)*Zbl 1120.52011

This book is simultaneously a thoroughgoing introduction to certain computational aspects of oriented matroids as developed by the author, his coauthors and students, and others over more than the last quarter of a century, and a platform upon which to begin to learn the Haskell programming language.

The book describes data structures derived from various definitions for “oriented matroid” and Haskell routines to navigate from one data structure to another, as well as routines to produce the dual or minors of a given oriented matroid, to produce the graphic oriented matroid of a given graph, and so forth. Then these tools are employed to study questions of combinatorial topology and geometry, such as “Given a (particular) triangulation of the 3-dimensional sphere, can it be realized as the poset of faces of the boundary of a convex 4-dimensional convex polytope?”

Several instances of this question are answered, with the aid of more specialized Haskell code. For the sphere problem and many others, a two-step process is used: First decide whether or not the sphere triangulation can be realized as an oriented matroid polytope; then, if so, decide whether or not the oriented matroid(s) found can be realized by matrices. Other applications are considered; in particular, a later chapter considers the realizability of subdivisions of the torus and of surfaces of higher genus by geometric polygons in space. The complete Haskell code is included, documented, and used to help with explanations of the mathematical content. A short Haskell tutorial is included in an appendix.

For illustrative purposes, the book contains not only a large number of colorful pictures of oriented matroids, but also pictures of artwork, by various artists, all having oriented matroid themes; the book, itself, is perhaps a piece of art.

##### MSC:

52C40 | Oriented matroids |

52C35 | Arrangements of points, flats, hyperplanes |

52C30 | Planar arrangements of lines and pseudolines |

52B11 | $n$-dimensional polytopes |

52-04 | Machine computation, programs (convex and discrete geometry) |