Mathematical structures for computer science - Gersting, Judith L. (Computer Science Press, 1993)