Skip to main content
Log in

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

  • Published:
Automatic Control and Computer Sciences Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Aho, A.V., Hopcroft, J.E., and Ulman, J.D., The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.

  2. Bodin, E.V., Kalinina, N.A., and Shilov, N.V., Project of Verifying FVOOL Compiler. Part 1: General Description of FVOOL Project, Its Place in Component Approach to Programming. Mini-NIL Language-Prototype of the Language of Project Virtual Machine, Preprint of Inst. System Inform. of Sib. Branch. Russ. Acad. Sci., 2005, no. 131.

  3. Bodin, E.V., Kalinina, N.A., and Shilov, N.V., Project of Verifying FVOOL Compiler. Part 2: Logic Annotations in Mini-NIL Language, Their Static Semantics and Semantics of Time of Performance, Preprint of Inst. System Inform. of Sib. Branch. Russ. Acad. Sci., 2006, no. 138.

  4. Deikstra, V.E., A Discipline of Programming, Prentice-Hall, 1976.

  5. Gries, D., The Science of Programming, New York: Springer, 1981.

    MATH  Google Scholar 

  6. Shilov, N.V., Vodin, E.V., and Ii, I., About Program Logics—Simply, in Sistemnaya informatika, (System Informatics), Novosibirsk: Nauka, 2002, no. 8, pp. 206–249.

    Google Scholar 

  7. Shilov, N.V., Anureev, I.S., and Bodin, E.V., Generation of Correctness Conditions for Imperative Programs, Program. Comput. Software, 2008, vol. 34, no. 6, pp. 307–321.

    Article  MATH  MathSciNet  Google Scholar 

  8. Shilov, N.V., Notes about Three Paradigms of Programming, Kompyut. Instrum. Obrazovan., 2010, no. 2, pp. 24–37.

  9. Anureev, I.S., Bodin, E.V., Gorodnyaya, L.V., Marchuk, A.G., Murzin, F.A., and Shilov, N.V., On the Problem of Computer Language Classification, Joint NCC and IIS Bulletin, Ser. Computer Sci., 2008, vol. 28, pp. 1–29.

    Google Scholar 

  10. Ball, T., Cook B., Levin V., and Rajamani, S.K., SLAM and Static Driver Verifier: Technology Transfer of Formal Methods Inside Microsoft, Lect. Notes Compt. Sci., 2004, vol. 2999, pp. 1–20.

    Article  Google Scholar 

  11. Beyer, D., Henzinger, T.A., Jhala, R., and Majumdar, R., The Software Model Checker Blast: Applications to Software Engineering, Int. J. Software Tools Techn. Transf., 2007, no. 9, pp. 505–525.

  12. Floyd, R.W., Assigning Meanings to Programs. Proc. Symp. in Applied Mathematics. Mathematical Aspects of Computer Science, 1967, pp. 19–32.

  13. Hoare, C.A.R., The Verifying Compiler: A Grand Challenge for Computing Research. Perspectives of Systems Informatics (PSI’2003), Lect. Notes Compt. Sci., 2003, vol. 2890, pp. 1–12.

    Google Scholar 

  14. Shilov, N.V., Bodin, Eu.V, and Shilova, S.O., Fabulous Arrays 1: Operational and Transformational Semantics of Static Arrays in Verification FBOOL Project, Bull. Nov. Comp. Center, Comp. Sci., 2009, vol. 29, pp. 121–140.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to N. V. Shilov.

Additional information

Original Russian Text © N.V. Shilov, 2010, published in Modelirovanie i Analiz Informatsionnykh Sistem, 2010, No. 4, pp. 111–124.

About this article

Cite this article

Shilov, N.V. F@BOOL@: Experiment with a simple verifying compiler based on SAT-solvers. Aut. Conrol Comp. Sci. 45, 428–436 (2011). https://doi.org/10.3103/S0146411611070133

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.3103/S0146411611070133

Keywords

Navigation