Automatic Control and Computer Sciences

, Volume 45, Issue 7, pp 428–436

F@BOOL@: Experiment with a simple verifying compiler based on SAT-solvers


DOI: 10.3103/S0146411611070133

Cite this article as:
Shilov, N.V. Aut. Conrol Comp. Sci. (2011) 45: 428. doi:10.3103/S0146411611070133


A verifying compiler is computer system program that translates programs written by a human from a high-level language to equivalent executable programs and proves (verifies) mathematical statements specified by a human concerning the properties of the translated programs. The objective of the project F@BOOL@ is to develop a user friendly, compact, and portable verifying compiler of annotated computational programs that uses efficient and reliable automatic SAT solvers as the tools for automatic validation of correctness conditions (instead of semiautomatic proof techniques). In the period from 2006 to 2009, the SAT solver zChaff was used in the project F@BOOL@. The first experiments on the verification of simple Mini-NIL programs were performed using this solver, namely, the programs swapping variable values, checking whether three integer numbers are the sides of an equilateral or an isoscales triangle, and searching for one fake coin among 15 coins using scales. This paper considers the main ideas of the project F@BOOL@ and gives the details of the experiment on the verification of the program solving the coin puzzle.


formal program verification operational and transformational program semantics Floyd-Hoare proof technique correctness conditions SAT solvers 

Copyright information

© Allerton Press, Inc. 2011

Authors and Affiliations

  1. 1.A.P. Ershov Institute of Informatic Systems, Siberian BranchRussian Academy of SciencesNovosibirskRussia
  2. 2.Novosibirsk State UniversityNovosibirskRussia
  3. 3.Novosibirsk State Technical UniversityNovosibirskRussia

Personalised recommendations