Mathematical Foundations of Computer Science by