Mathematical structures for computer science : A Modern treatment of discrete mathematics - Gersting, J.L (W.H. Freeman and Company, 2003)