학술논문

Formalizing single-assignment program verification: an adaptation-complete approach.
Document Type
Proceedings Paper
Author
Lourenço, Cláudio Belo (P-MINH-HAS) AMS Author Profile; Frade, Maria João (P-MINH-HAS) AMS Author Profile; Sousa Pinto, Jorge (P-MINH-HAS) AMS Author Profile
Source
Programming languages and systems (20160101), 41-67.
Subject
68 Computer science -- 68N Software
  68N30 Mathematical aspects of software engineering
Language
English
Abstract
Summary: ``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 {\it 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 {\it adaptation-complete}. Although this important property has not, as far as we know, been established for any existing program verification tool, we believe that adaptation-completeness 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.''

Online Access