Why Just Boogie? Translating Between Intermediate Verification Languages
Paper i proceeding, 2016

The verification systems Boogie and Why3 use their respective intermediate languages to generate verification conditions from high-level programs. Since the two systems support different back-end provers (such as Z3 and Alt-Ergo) and are used to encode different high-level languages (such as C# and Java), being able to translate between their intermediate languages would provide a way to reuse one system's features to verify programs meant for the other. This paper describes a translation of Boogie into WhyML (Why3's intermediate language) that preserves semantics, verifiability, and program structure to a large degree. We implemented the translation as a tool and applied it to 194 Boogie-verified programs of various sources and sizes; Why3 verified 83% of the translated programs with the same outcome as Boogie. These results indicate that the translation is often effective and practically applicable.

formal verification

Författare

M. Ameri

ETH Zurich

Carlo A Furia

Chalmers, Data- och informationsteknik, Programvaruteknik

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 9681 79-95
978-3-319-33693-0 (ISBN)

Ämneskategorier (SSIF 2011)

Programvaruteknik

DOI

10.1007/978-3-319-33693-0_6

ISBN

978-3-319-33693-0

Mer information

Skapat

2017-10-07