Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abrial, J.-R.: The Event-B Book. Cambridge University Press, Cambridge (2010)
Barringer, H., Cheng, J.H., Jones, C.B.: A logic covering undefinedness in program proofs. Acta Informatica 21, 251–269 (1984)
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)
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)
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)
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)
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)
Jackson, M.: Problem Frames: Analyzing and structuring software development problems. Addison-Wesley (2000)
Jones, C.B.: Software Development: A Rigorous Approach. Prentice Hall International (1980)
Jones, C.B.: Systematic Software Development using VDM, 2nd edn. Prentice Hall International (1990)
Jones, C.B., Jones, K.D., Lindsay, P.A., Moore, R.: mural: A Formal Development Support System. Springer (1991)
Jones, C.B., Shaw, R.C.F. (eds.): Case Studies in Systematic Software Development. Prentice Hall International (1990)
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)
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)
Kaufmann, M., Manolios, P., Strother Moore, J.: ACL2 Computer-Aided Reasoning: An Approach. University of Austin Texas (2009)
Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)
Paulson, L.C.: Isabelle. LNCS, vol. 828. Springer, Heidelberg (1994)
Rodin: The Rodin Tools can be downloaded from SourceForge (2008), http://www.sourceforge.net/projects/rodin-b-sharp
Romanovsky, A., Thomas, M. (eds.): Industrial Deployment of System Engineering Methods. Springer (2013)
Schmalz, M.: Formalising the Logic of Event-B. PhD thesis, ETH, Zuerich (2012)
Velykis, A.: Isabelle/Eclipse (2013), http://andriusvelykis.github.io/isabelle-eclipse
Velykis, A., Freitas, L., Jones, C.B., Whiteside, I.: How to say why (in AI4FM). Technical Report CS-TR-1376, Newcastle University (March 2013)
WWW. AI4FM (February 2013), http://www.ai4fm.org
WWW. Deploy project web site (February 2013), http://www.ncl.ac.uk/computing/research/project/3625
WWW. Overture (March 2013) http://www.overturetool.org
WWW. The ProB animator and model checker (February 2013), http://www.stups.uni-duesseldorf.de/ProB
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Jones, C.B., Freitas, L., Velykis, A. (2013). Ours Is to Reason Why. In: Liu, Z., Woodcock, J., Zhu, H. (eds) Theories of Programming and Formal Methods. Lecture Notes in Computer Science, vol 8051. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39698-4_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-39698-4_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39697-7
Online ISBN: 978-3-642-39698-4
eBook Packages: Computer ScienceComputer Science (R0)