Proving termination of imperative programs using Max-SMT
Document typeConference report
Rights accessOpen Access
We show how Max-SMT can be exploited in constraint-based program termination proving. Thanks to expressing the generation of a ranking function as a Max-SMT optimization problem where constraints are assigned different weights, quasi-ranking functions --functions that almost satisfy all conditions for ensuring well-foundedness-- are produced in a lack of ranking functions. By means of trace partitioning, this allows our method to progress in the termination analysis where other approaches would get stuck. Moreover, Max-SMT makes it easy to combine the process of building the termination argument with the usually necessary task of generating supporting invariants. The method has been implemented in a prototype that has successfully been tested on a wide set of programs.
CitationLarraz, D. [et al.]. Proving termination of imperative programs using Max-SMT. A: FMCAD 2013 Formal Methods in Computer-Aided Design. "International Conference on Formal Methods in Computer-Aided Design". Portland, Oregon: 2013, p. 218-225.