Ours Is to Reason Why

  • Cliff B. Jones
  • Leo Freitas
  • Andrius Velykis
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8051)


It is now widely understood how to write formal specifications so as to be able to justify designs (and thus implementations) against such specifications. In many formal approaches, a “posit and prove” approach allows a designer to record an engineering design decision from which a collection of “proof obligations” are generated; their discharge justifies the design step. Modern theorem proving tools greatly simplify the discharge of such proof obligations. In typical industrial applications, however, there remain sufficiently many proof obligations that require manual intervention that an engineer finds them a hurdle to the deployment of formal proofs. This problem is exacerbated by the need to repeat proofs when changes are made to specifications or designs. This paper outlines how a key additional resource can be brought to bear on the discharge of proof obligations: the central idea is to “learn” new ways of discharging families of proof obligations by tracking one interactive proof performed by an expert. Since what blocks any fixed set of heuristics from automatically discharging proof obligations is issues around data structures and/or functions, it is expected that what the system can learn from one interactive proof will facilitate the discharge of significant “families” of recalcitrant proof tasks.


Theorem Prove Proof Obligation Proof Tree Automatic Theorem Prove Interactive Proof 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial, J.-R.: The Event-B Book. Cambridge University Press, Cambridge (2010)zbMATHGoogle Scholar
  2. 2.
    Barringer, H., Cheng, J.H., Jones, C.B.: A logic covering undefinedness in program proofs. Acta Informatica 21, 251–269 (1984)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Bundy, A., Basin, D., Hutter, D., Ireland, A.: Rippling: Meta-level Guidance for Mathematical Reasoning. Cambridge Tracts in Theoretical Computer Science, vol. 56. Cambridge University Press (2005)Google Scholar
  4. 4.
    Bundy, A., Grov, G., Jones, C.B.: Learning from experts to aid the automation of proof search. In: O’Reilly, L., Roggenbach, M. (eds.) AVoCS 2009 – PreProceedings of the Ninth International Workshop on Automated Verification of Critical Systems, CSR-2-2009, pp. 229–232. Swansea University (2009)Google Scholar
  5. 5.
    Bundy, A., Grov, G., Jones, C.B.: An outline of a proposed system that learns from experts how to discharge proof obligations automatically. In: Abrial, J.-R., Butler, M., Joshi, R., Troubitsyna, E., Woodcock, J.C.P. (eds.) Dagstuhl 09381: Refinement Based Methods for the Construction of Dependable Systems, pp. 38–42 (2009)Google Scholar
  6. 6.
    Freitas, L., Jones, C.B.: Learning from an expert’s proof: AI4FM. In: Ball, T., Zuck, L., Shankar, N. (eds.) UV 2010 (Usable Verification) (November 2010)Google Scholar
  7. 7.
    Guttag, J.V., Horning, J.J., Garl, W.J., Jones, K.D., Modet, A., Wing, J.M.: Larch: languages and tools for formal specification. Springer (1993)Google Scholar
  8. 8.
    Jackson, M.: Problem Frames: Analyzing and structuring software development problems. Addison-Wesley (2000)Google Scholar
  9. 9.
    Jones, C.B.: Software Development: A Rigorous Approach. Prentice Hall International (1980)Google Scholar
  10. 10.
    Jones, C.B.: Systematic Software Development using VDM, 2nd edn. Prentice Hall International (1990)Google Scholar
  11. 11.
    Jones, C.B., Jones, K.D., Lindsay, P.A., Moore, R.: mural: A Formal Development Support System. Springer (1991)Google Scholar
  12. 12.
    Jones, C.B., Shaw, R.C.F. (eds.): Case Studies in Systematic Software Development. Prentice Hall International (1990)Google Scholar
  13. 13.
    Jones, C.B., Grov, G., Bundy, A.: Ideas for a high-level proof strategy language. In: Dutertre, B., Saidi, H. (eds.) AFM 2010 (Automated Formal Methods) (July 2010)Google Scholar
  14. 14.
    Jones, C.B., Hayes, I.J., Jackson, M.A.: Deriving specifications for systems that are connected to the physical world. In: Jones, C.B., Liu, Z., Woodcock, J. (eds.) Formal Methods and Hybrid Real-Time Systems. LNCS, vol. 4700, pp. 364–390. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  15. 15.
    Kaufmann, M., Manolios, P., Strother Moore, J.: ACL2 Computer-Aided Reasoning: An Approach. University of Austin Texas (2009)Google Scholar
  16. 16.
    Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  17. 17.
    Paulson, L.C.: Isabelle. LNCS, vol. 828. Springer, Heidelberg (1994)CrossRefzbMATHGoogle Scholar
  18. 18.
    Rodin: The Rodin Tools can be downloaded from SourceForge (2008),
  19. 19.
    Romanovsky, A., Thomas, M. (eds.): Industrial Deployment of System Engineering Methods. Springer (2013)Google Scholar
  20. 20.
    Schmalz, M.: Formalising the Logic of Event-B. PhD thesis, ETH, Zuerich (2012)Google Scholar
  21. 21.
    Velykis, A.: Isabelle/Eclipse (2013),
  22. 22.
    Velykis, A., Freitas, L., Jones, C.B., Whiteside, I.: How to say why (in AI4FM). Technical Report CS-TR-1376, Newcastle University (March 2013)Google Scholar
  23. 23.
    WWW. AI4FM (February 2013),
  24. 24.
    WWW. Deploy project web site (February 2013),
  25. 25.
    WWW. Overture (March 2013)
  26. 26.
    WWW. The ProB animator and model checker (February 2013),

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Cliff B. Jones
    • 1
  • Leo Freitas
    • 1
  • Andrius Velykis
    • 1
  1. 1.School of Computing ScienceNewcastle UniversityUK

Personalised recommendations