Rigorous software development an introduction to program verification - Almeida, Jos©♭ Bacelar (Undergraduate Topics in Computer Science,, 2011)