A FOOLish Encoding of the Next State Relations of Imperative Programs
Paper i proceeding, 2018

Automated theorem provers are routinely used in program analysis and verification for checking program properties. These properties are translated from program fragments to formulas expressed in the logic supported by the theorem prover. Such translations can be complex and require deep knowledge of how theorem provers work in order for the prover to succeed on the translated formulas. Our previous work introduced FOOL, a modification of first-order logic that extends it with syntactical constructs resembling features of programming languages. One can express program properties directly in FOOL and leave translations to plain first-order logic to the theorem prover. In this paper we present a FOOL encoding of the next state relations of imperative programs. Based on this encoding we implement a translation of imperative programs annotated with their pre- and post-conditions to partial correctness properties of these programs. We present experimental results that demonstrate that program properties translated using our method can be efficiently checked by the first-order theorem prover Vampire.

Författare

Evgenii Kotelnikov

Chalmers, Data- och informationsteknik, Formella metoder

Laura Kovacs

Chalmers, Data- och informationsteknik, Formella metoder

Technische Universität Wien

Andrei Voronkov

University of Manchester

EasyChair

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

03029743 (ISSN) 16113349 (eISSN)

Vol. 10900 LNAI 405-421
978-331994204-9 (ISBN)

International Joint Conference on Automated Reasoning
Oxford, United Kingdom,

Styrkeområden

Informations- och kommunikationsteknik

Ämneskategorier

Datavetenskap (datalogi)

DOI

10.1007/978-3-319-94205-6_27

Mer information

Senast uppdaterat

2022-06-09