Invariant Checking for Programs with Procedure Calls [chapter]

Guillem Godoy, Ashish Tiwari
2009 Lecture Notes in Computer Science  
Invariants are a crucial component of the overall correctness of programs. We explore the theoretical limits for doing automatic invariant checking and show that invariant checking is decidable for a large class of programs that includes some recursive programs. The proof uses known results like the decidability of Presburger arithmetic and the semilinearity of the Parikh image of a regular language. Removing some of the restrictions on the program model leads to undecidability of the invariant checking problem.
doi:10.1007/978-3-642-03237-0_22 fatcat:vi3l2taxjvh7ze6tnvgb7b5y5i