Creative Commons Attribution-NoDerivs 3.0 Unported license
We introduce a general verification framework based on program specialization to prove properties of the runtime behaviour of imperative programs. Given a program P written in a programming language L and a property phi in a logic M, we can verify that phi holds for P by: (i) writing an interpreter I for L and a semantics S for M in a suitable metalanguage, (ii) specializing I and S with respect to P and phi, and (iii) analysing the specialized program by performing a further specialization. We have instantiated our framework to verify safety properties of a simple imperative language, called SIMP, extended with a nondeterministic choice operator. The method is fully automatic and it has been implemented using the MAP transformation system.
@InProceedings{deangelis:LIPIcs.ICLP.2012.439,
author = {De Angelis, Emanuele},
title = {{Software Model Checking by Program Specialization}},
booktitle = {Technical Communications of the 28th International Conference on Logic Programming (ICLP'12)},
pages = {439--444},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-939897-43-9},
ISSN = {1868-8969},
year = {2012},
volume = {17},
editor = {Dovier, Agostino and Santos Costa, V{\'\i}tor},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ICLP.2012.439},
URN = {urn:nbn:de:0030-drops-36436},
doi = {10.4230/LIPIcs.ICLP.2012.439},
annote = {Keywords: Software model checking, program specialization, constraint logic programming.}
}