This paper proposes the use of constraint logic programming (CLP) to perform model checking of traditional, imperative programs. We present a semantics-preserving translation from ...
We describe a new program termination analysis designed to handle imperative programs whose termination depends on the mutation rogram's heap. We first describe how an abstrac...
Josh Berdine, Byron Cook, Dino Distefano, Peter W....
Many algorithms on data structures such as terms (finitely branching trees) are naturally implemented by second-order recursion: A first-order procedure f passes itself as an arg...
Several induction theorem provers were developed to verify functional programs mechanically. Unfortunately, automatic verification often fails for functions with accumulating arg...
A data structure is said to be persistent when any update operation returns a new structure without altering the old version. This paper introduces a new notion of persistence, cal...