Discrete Mathematics for Computer Science by Haggard & Schlipf