Constraint Solving for Program Verification: Theory and Practice by Example [chapter]

Andrey Rybalchenko
2010 Lecture Notes in Computer Science  
Program verification relies on the construction of auxiliary assertions describing various aspects of program behaviour, e.g., inductive invariants, resource bounds, and interpolants for characterizing reachable program states, ranking functions for approximating number of execution steps until program termination, or recurrence sets for demonstrating non-termination. Recent advances in the development of constraint solving tools offer an unprecedented opportunity for the efficient automation
more » ... this task. This paper presents a series of examples illustrating algorithms for the automatic construction of such auxiliary assertions by utilizing constraint solvers as the basic computing machinery.
doi:10.1007/978-3-642-15205-4_7 fatcat:zwcyembydzel3fppagd7rg4lru