Mathematical Foundations Of Computer Science by Dan A. Simovici, Mogens Nielsen & Branislav Rovan