Towards Formal Proof Script Refactoring

  • Iain Whiteside
  • David Aspinall
  • Lucas Dixon
  • Gudmund Grov
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6824)


We propose proof script refactorings as a robust tool for constructing, restructuring, and maintaining formal proof developments. We argue that a formal approach is vital, and illustrate by defining and proving correct a number of valuable refactorings in a simplified proof script and declarative proof language of our own design.


Transformation Rule Formal Proof Proof Tree Derivation System Proof Script 
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.
    Aspinall, D., Denney, E., Lüth, C.: Tactics for hierarchical proof. Mathematics in Computer Science 3, 309–330 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Corbineau, P.: A declarative language for the Coq proof assistant. In: Miculan, M., Scagnetto, I., Honsell, F. (eds.) TYPES 2007. LNCS, vol. 4941, pp. 69–84. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  3. 3.
    Cornlio, M., Cavalcanti, A., Sampaio, A.: Refactoring by transformation. Electronic Notes in Theoretical Computer Science 70(3), 311–330 (2002)CrossRefzbMATHGoogle Scholar
  4. 4.
    Denney, E., Power, J., Tourlas, K.: Hiproofs: A hierarchical notion of proof tree. Electr. Notes Theor. Comput. Sci. 155, 341–359 (2006)CrossRefzbMATHGoogle Scholar
  5. 5.
    Ettinger, R., Verbaere, M.: Refactoring bugs in Eclipse, IntelliJ IDEA and Visual Studio (2005),
  6. 6.
    Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley, Reading (1999)zbMATHGoogle Scholar
  7. 7.
    Gonthier, G.: The Four Colour Theorem: Engineering of a formal proof. In: Kapur, D. (ed.) ASCM 2007. LNCS (LNAI), vol. 5081, pp. 333–333. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  8. 8.
    Hales, T.C.: Formal proof. Notices of the AMS 55, 1370–1380 (2008)MathSciNetzbMATHGoogle Scholar
  9. 9.
    Klein, G., Elphinstone, K., Heiser, G., Andronick, J., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: seL4: Formal verification of an OS kernel. In: Proceedings of the 22nd ACM Symposium on OSP, pp. 207–220. ACM, New York (October 2009)Google Scholar
  10. 10.
    Li, H., Thompson, S.: Formalisation of Haskell Refactorings. In: Trends in Functional Programming (September 2005)Google Scholar
  11. 11.
    Mens, T., Tourwe, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  12. 12.
    Opdyke, W.F.: Refactoring object-oriented frameworks. PhD thesis, University of Illinois, Champaign, IL, USA (1992)Google Scholar
  13. 13.
    Pons, O., Bertot, Y., Rideau, L.: Notions of dependency in proof assistants. In: User Interfaces for Theorem Provers, UITP (1998)Google Scholar
  14. 14.
    Schairer, A., Hutter, D.: Proof transformations for evolutionary formal software development. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422, pp. 441–456. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    Serjantov, A., Sewell, P., Wansbrough, K.: The UDP calculus: Rigorous semantics for real networking. In: Kobayashi, N., Babu, C. S. (eds.) TACS 2001. LNCS, vol. 2215, pp. 535–559. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  16. 16.
    Stepney, S., Polack, F., Toyn, I.: Refactoring in maintenance and development of Z specifications. Electr. Notes Theor. Comput. Sci. 70(3) (2002)Google Scholar
  17. 17.
    Josef, U., Grzegorz, B.: Presenting and explaining Mizar. Electron. Notes Theor. Comput. Sci. 174(2), 63–74 (2007)CrossRefzbMATHGoogle Scholar
  18. 18.
    Wenzel, M.: Isar - a generic interpretative approach to readable formal proof documents. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 167–184. Springer, Heidelberg (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Iain Whiteside
    • 1
  • David Aspinall
    • 1
  • Lucas Dixon
    • 1
  • Gudmund Grov
    • 1
  1. 1.School of InformaticsUniversity of EdinburghEdinburghScotland

Personalised recommendations