Title: Rigorous Software Development: An Introduction to Program Verification (Undergraduate Topics in Computer Science)