|
Modelirovanie i Analiz Informatsionnykh Sistem, 2010, Volume 17, Number 4, Pages 111–124
(Mi mais41)
|
|
|
|
F@BOOL@: experiment with a simple verifying compiler based on SAT-solvers
N. V. Shilovabc a Novosibirsk State Technical University
b A. P. Ershov Institute of Informatics Systems Sib. Br. RAS
c Novosibirsk State University
Abstract:
A verifying compiler is a system computer program that translates programs written by man from a high-level language into equivalent executable programs, and besides, proves (verifies) mathematical statements specified by man about the properties of the programs being translated. The purpose of the F@BOOL@ project is to develop a transparent for users, compact and portable verifying compiler F@BOOL@ for annotated computational programs, that uses effective and sound automatic SAT-solvers (i.e. programs that check satisfiability of prepositional Boolean formulas in the conjunctive normal form) as means of automatic validation of correctness conditions (instead of semi-automatic proof techniques). The key idea is Boolean representation of all data instead of Boolean abstraction or first-order representation. (It makes difference between F@BOOL@ and SLAM.) Our project is aimed at the verification of functional properties, and it assumes generation of first-order verification conditions (from invariants), and the validation/refutation of each verification condition using SAT-solvers after “conservative” translation of the verification conditions into Boolean form. During the period from 2006 to 2009, a popular (at that time) SAT-solver zChaff was used in the F@BOOL@ project. The first three verification experiments that have been exercised with its help are listed below: swapping values of two variables, checking whether three input values are lengths of sides of an equilateral or isosceles triangle, and detecting a unique fake in a set of 15 coins. The paper presents general outlines of the project and details of the last (the most extensive) experiment.
Keywords:
formal program verification, operational and transformational semantics, Floyd–Hoare proof technique, correctness conditions, SAT-solvers.
Received: 26.10.2010
Citation:
N. V. Shilov, “F@BOOL@: experiment with a simple verifying compiler based on SAT-solvers”, Model. Anal. Inform. Sist., 17:4 (2010), 111–124
Linking options:
https://www.mathnet.ru/eng/mais41 https://www.mathnet.ru/eng/mais/v17/i4/p111
|
|