Foundations of computer science (Principles of computer science series)