Discrete mathemetics for computer science - Haggard, Gray (Cengage learning, 2006)