Mathematical programming based debugging

Leo Liberti, Stéphane Le Roux, Jeremy Leconte, Fabrizio Marinelli
2010 Electronic Notes in Discrete Mathematics  
Verifying that a piece of software has no bugs means proving that it has certain desired properties, such as an array index not taking values outside certain bounds. Abstract interpretation is used in the static analysis of code to establish the inclusion-wise smallest set of values (numerical invariant) that the program variables can attain during program execution. Such sets can be used to detect run-time errors without actually running the program. We present a mathematical program that
more » ... mines guaranteed smallest interval invariants of computer programs with integer affine arithmetics and compare our results to existing techniques.
doi:10.1016/j.endm.2010.05.166 fatcat:nerpecbjyzgpzg7k2aragu5koy