Formalizing single-assignment program verification: An adaptation-complete approach

Thumbnail Image
Date
2016
Authors
Cláudio Belo Lourenço
Maria João Frade
Jorge Sousa Pinto
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Deductive verification tools typically rely on the conversion of code to a single-assignment (SA) form. In this paper we formalize program verification based on the translation of While programs annotated with loop invariants into a dynamic single-assignment language with a dedicated iterating construct, and the subsequent generation of compact, indeed linear-size, verification conditions. Soundness and completeness proofs are given for the entire workflow, including the translation of annotated programs to SA form. The formalization is based on a program logic that we show to be adaptation-complete. Although this important property has not, as far as we know, been established for any existing program verification tool, we believe that adaptationcompleteness is one of the major motivations for the use of SA form as an intermediate language. Our results here show that indeed this allows for the tools to achieve the maximum degree of adaptation when handling subprograms. © Springer-Verlag Berlin Heidelberg 2016.
Description
Keywords
Citation