Qed. Computing What Remains to Be Proved

  • Loïc Correnson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8430)


We propose a framework for manipulating in a efficient way terms and formulæ in classical logic modulo theories. Qed was initially designed for the generation of proof obligations of a weakest-precondition engine for C programs inside the Frama-C framework, but it has been implemented as an independent library. Key features of Qed include on-the-fly strong normalization with various theories and maximal sharing of terms in memory. Qed is also equipped with an extensible simplification engine. We illustrate the power of our framework by the implementation of non-trivial simplifications inside the Wp plug-in of Frama-C. These optimizations have been used to prove industrial, critical embedded softwares.


  1. 1.
    Barrett, C.W., de Moura, L., Stump, A.: Smt-comp: Satisfiability modulo theories competition. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 20–23. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-c: A software analysis perspective. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 233–247. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  3. 3.
    Baudin, P., Filliâtre, J.C., Hubert, T., Marché, C., Monate, B., Moy, Y., Prevosto, V.: ACSL Specification Language (2013), http://frama-c.com/acsl.html
  4. 4.
    Barnett, M., Leino, K.R.M.: Weakest-precondition of unstructured programs. SIGSOFT Softw. Eng. Notes 31(1), 82–87 (2005)CrossRefGoogle Scholar
  5. 5.
    Baudin, P., Correnson, L., Dargaye, Z.: WP User Manual, v0.7 (2013), http://frama-c.com/download/frama-c-wp-manual.pdf
  6. 6.
    Coq Development Team: The Coq Proof Assistant (2011), http://coq.inria.fr
  7. 7.
    Conchon, S., et al.: The Alt-Ergo Automated Theorem Prover, http://alt-ergo.lri.fr
  8. 8.
    Bobot, F., Filliâtre, J.C., Marché, C., Melquiond, G., Paskevich, A.: The Why3 platform 0.81Google Scholar
  9. 9.
    Filliâtre, J.C., Conchon, S.: Type-safe modular hash-consing. In: Proceedings of the 2006 Workshop on ML 2006, pp. 12–19. ACM, New York (2006)Google Scholar
  10. 10.
    Okasaki, C., Gill, A.: Fast mergeable integer maps. In: Workshop on ML (1998)Google Scholar
  11. 11.
    Gordon, A., Melham, T.: Five axioms of alpha-conversion. In: von Wright, J., Harrison, J., Grundy, J. (eds.) TPHOLs 1996. LNCS, vol. 1125, pp. 173–190. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  12. 12.
    Johnsson, T.: Lambda lifting: Transforming programs to recursive equations. In: Jouannaud, J.-P. (ed.) Functional Programming Languages and Computer Architecture. LNCS, vol. 201, pp. 190–203. Springer, Heidelberg (1985)CrossRefGoogle Scholar
  13. 13.
    de Moura, L.M., Bjorner, N.: Generalized, efficient array decision procedures. In: IEEE FMCAD, pp. 45–52 (2009)Google Scholar
  14. 14.
    Leino, K.R.M.: Efficient weakest preconditions (2003) (unpublished manuscrit), http://research.microsoft.com/en-us/um/people/leino/papers/krml114a.pdf

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Loïc Correnson
    • 1
  1. 1.Software Safety LaboratoryCEA, LISTGif-sur-YvetteFrance

Personalised recommendations