%0 Conference Paper %B 2018 {IEEE} 42nd Annual Computer Software and Applications Conference, {COMPSAC} 2018, Tokyo, Japan, 23-27 July 2018, Volume 1 %D 2018 %T A Generalized Approach to Verification Condition Generation %A Cláudio Belo Lourenço %A Maria João Frade %A Shin Nakajima %A Jorge Sousa Pinto %E Sorel Reisman %E Sheikh Iqbal Ahamed %E Claudio Demartini %E Thomas M. Conte %E Ling Liu %E William R. Claycomb %E Motonori Nakamura %E Edmundo Tovar %E Stelvio Cimato %E Chung{-}Horng Lung %E Hiroki Takakura %E Ji{-}Jiang Yang %E Toyokazu Akiyama %E Zhiyong Zhang %E Kamrul Hasan %I {IEEE} Computer Society %P 194–203 %R 10.1109/COMPSAC.2018.00032 %U https://doi.org/10.1109/COMPSAC.2018.00032 %X
In a world where many human lives depend on the correct behavior of software systems, program verification as- sumes a crucial role. Many verification tools rely on an algorithm that generates verification conditions (VCs) from code annotated with properties to be checked. In this paper, we revisit two major methods that are widely used to produce VCs: predicate transformers (used mostly by deductive verification tools) and the conditional normal form transformation (used in bounded model checking of software). We identify three different aspects in which the methods differ (logical encoding of control flow, use of contexts, and semantics of asserts), and show that, since they are orthogonal, they can be freely combined. This results in six new hybrid verification condition generators (VCGens), which together with the fundamental methods constitute what we call the VCGen cube. We consider two optimizations implemented in major program verification tools and show that each of them can in fact be applied to an entire face of the cube, resulting in optimized versions of the six hybrid VCGens. Finally, we compare all VCGens empirically using a number of benchmarks. Although the results do not indicate absolute superiority of any given method, they do allow us to identify interesting patterns.
%Zn/a
%> https://haslab.uminho.pt/sites/default/files/mjf/files/main.pdf