Formal Methods in Software Engineering

Language-Independent Program Verification Using Symbolic Execution

Year2013
TypeReport
StatusPublished
AuthorsAndrei Arusoaie, Dorel Lucanu, Vlad Rusu

Links

Abstract

In this paper we present an automatic and language-independent program verification approach based on symbolic execution. The specification formalism we consider is Reachability Logic, a language-independent logic that constitutes an alternative to Hoare logics. Reachability Logic has a sound and relatively complete deduction system, which offers a lot of freedom (but no guidelines) for constructing proofs. Hence, we propose symbolic execution as a strategy for proof construction. We show that, under reasonable conditions on the semantics of programming languages, our symbolic-execution based Reachability-Logic formula verification is sound. We present a prototype implementation of the resulting language-independent verifier as an extension of a generic symbolic execution engine that we are developing in the K framework. The verifier is illustrated on programs written in languages also formally defined in K.

BibTeX

@techreport{arusoaie:hal-00864341, hal_id = {hal-00864341}, url = {http://hal.inria.fr/hal-00864341}, title = {Language-Independent Program Verification Using Symbolic Execution}, author = {Arusoaie, Andrei and Lucanu, Dorel and Rusu, Vlad}, affiliation = {Department of Compter Science , Department of Computer Science , DART - INRIA Lille - Nord Europe}, pages = {22}, type = {Rapport de recherche}, institution = {INRIA}, number = {RR-8369}, year = {2013}, month = Sep, url = {http://hal.inria.fr/hal-00864341/ [INRIA RR-8369]}, }