Preserving User Proofs across Specification Changes

  • François Bobot
  • Jean-Christophe Filliâtre
  • Claude Marché
  • Guillaume Melquiond
  • Andrei Paskevich
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8164)

Abstract

In the context of deductive program verification, both the specification and the code evolve as the verification process carries on. For instance, a loop invariant gets strengthened when additional properties are added to the specification. This causes all the related proof obligations to change; thus previous user verifications become invalid. Yet it is often the case that most of previous proof attempts (goal transformations, calls to interactive or automated provers) are still directly applicable or are easy to adjust. In this paper, we describe a technique to maintain a proof session against modification of verification conditions. This technique is implemented in the Why3 platform. It was successfully used in developing more than a hundred verified programs and in keeping them up to date along the evolution of Why3 and its standard library. It also helps out with changes in the environment, e.g. prover upgrades.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Barrett, C., Conway, C.L., Deters, M., Hadarean, L., Jovanović, D., King, T., Reynolds, A., Tinelli, C.: CVC4. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 171–177. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  2. 2.
    Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software: The KeY Approach. LNCS (LNAI), vol. 4334. Springer, Heidelberg (2007)Google Scholar
  3. 3.
    Bobot, F., Conchon, S., Contejean, E., Iguernelala, M., Lescuyer, S., Mebsout, A.: The Alt-Ergo automated theorem prover (2008), http://alt-ergo.lri.fr/
  4. 4.
    Bobot, F., Filliâtre, J.-C., Marché, C., Paskevich, A.: Why3: Shepherd your herd of provers. In: Boogie 2011: First International Workshop on Intermediate Verification Languages, Wrocław, Poland, pp. 53–64 (August 2011)Google Scholar
  5. 5.
    Bobot, F., Paskevich, A.: Expressing Polymorphic Types in a Many-Sorted Language. In: Tinelli, C., Sofronie-Stokkermans, V. (eds.) FroCoS 2011. LNCS, vol. 6989, pp. 87–102. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  6. 6.
    Cruanes, S., Hamon, G., Owre, S., Shankar, N.: Tool integration with the evidential tool bus. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) VMCAI 2013. LNCS, vol. 7737, pp. 275–294. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  7. 7.
    de Moura, L., Bjørner, N.S.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  8. 8.
    Filliâtre, J.-C.: Combining Interactive and Automated Theorem Proving in Why3 (invited talk). In: Heljanko, K., Herbelin, H. (eds.) Automation in Proof Assistants 2012, Tallinn, Estonia (April 2012)Google Scholar
  9. 9.
    Filliâtre, J.-C., Paskevich, A.: Why3 — where programs meet provers. In: Felleisen, M., Gardner, P. (eds.) Programming Languages and Systems. LNCS, vol. 7792, pp. 125–128. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  10. 10.
    Klebanov, V.: Extending the Reach and Power of Deductive Program Verification. PhD thesis, Universität Koblenz-Landau (2009), http://formal.iti.kit.edu/~klebanov/pubs/vstte09.pdf
  11. 11.
    Miller, D., Pimentel, E.: A formal framework for specifying sequent calculus proof systems. In: Theoretical Computer Science, pp. 98–116 (2013)Google Scholar
  12. 12.
    Reif, W., Stenzel, K.: Reuse of proofs in software verification. In: Shyamasundar, R.K. (ed.) FSTTCS 1993. LNCS, vol. 761, pp. 284–293. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  13. 13.
    Rushby, J.: An evidential tool bus. In: Lau, K.-K., Banach, R. (eds.) ICFEM 2005. LNCS, vol. 3785, p. 36. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  14. 14.
    Sutcliffe, G.: The SZS ontologies for automated reasoning software. In: Rudnicki, P., Sutcliffe, G., Konev, B., Schmidt, R.A., Schulz, S. (eds.) Proceedings of the LPAR 2008 Workshops, Knowledge Exchange: Automated Provers and Proof Assistants, and the 7th International Workshop on the Implementation of Logics, vol. 418. CEUR Workshop Proceedings, pp. 38–49 (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • François Bobot
    • 3
  • Jean-Christophe Filliâtre
    • 1
    • 2
  • Claude Marché
    • 2
    • 1
  • Guillaume Melquiond
    • 2
    • 1
  • Andrei Paskevich
    • 1
    • 2
  1. 1.Lab. de Recherche en InformatiqueUniv. Paris-Sud, CNRSOrsayFrance
  2. 2.INRIA Saclay – Île-de-FranceOrsayFrance
  3. 3.CEA, LIST, Software Reliability Laboratory, PC 174Gif-sur-YvetteFrance

Personalised recommendations