Mathematical structures for computer science - Gersting, Judith L. (W.H. Freeman and Company, 1999)