Skip to main content
Log in

Tactics for Hierarchical Proof

  • Published:
Mathematics in Computer Science Aims and scope Submit manuscript

Abstract

There is something of a discontinuity at the heart of popular tactical theorem provers. Low-level, fully-checked mechanical proofs are large trees consisting of primitive logical inferences. Meanwhile, high-level human inputs are lexically structured formal texts which include tactics describing search procedures. The proof checking process maps from the high-level to low-level, but after that, explicit connections are usually lost. The lack of connection can make it difficult to understand the proof trees produced by successful tactic proofs, and difficult to debug faulty tactic proofs. We propose the use of hierarchical proofs, also known as hiproofs, to help bridge these levels. Hiproofs superimpose a labelled hierarchical nesting on an ordinary proof tree, abstracting from the underlying logic. The labels and nesting are used to describe the organisation of the proof, typically relating to its construction process. In this paper we introduce a foundational tactic language Hitac which constructs hiproofs in a generic setting. Hitac programs can be evaluated using a big-step or a small-step operational semantics. The big-step semantics captures the intended meaning, whereas the small-step semantics is closer to possible implementations and provides a unified notion of proof state. We prove that the semantics are equivalent and construct valid proofs. We also explain how to detect terms which are stuck in the small-step semantics, and how these suggest interaction points with debugging tools. Finally we show some typical examples of tactics, constructed using tactical combinators, in our language.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aboul-Hosn, K.: A proof-theoretic approach to tactics. In: Borwein, J.M., Farmer, W.M. (eds.) Mathematical Knowledge Management, 5th International Conference, MKM 2006. Lecture Notes in Computer Science, vol. 4108, pp. 54–66. Springer, Berlin (2006)

  2. Allen S.F., Bickford M., Constable R.L., Eaton R., Kreitz C., Lorigo L., Moran E.: Innovations in computational type theory using Nuprl. J. Appl. Logic 4(4), 428–469 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  3. Appel A.W., Felty A.P.: Dependent types ensure partial correctness of theorem provers. J. Funct. Program. 14, 3–19 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  4. Asperti A., Coen C.S., Tassi E., Zacchiroli S.: User interaction with the matita proof assistant. J. Autom. Reason. 39(2), 109–139 (2007)

    Article  MATH  Google Scholar 

  5. Aspinall, D.: Proof general: a generic tool for proof development. In: Graf, S., Schwartzbach, M. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, LNCS 1785, pp. 38–42. Springer, Berlin (2000)

  6. Delahaye, D.: A tactic language for the system Coq. In: Logic for Programming and Automated Reasoning: 7th International Conference, LPAR 2000, Reunion Island, France, November 6–10, 2000. Lecture Notes in Computer Science, vol. 1955, pp. 85–95 (2000)

  7. Denney, E., Power, J., Tourlas, K.: Hiproofs: a hierarchical notion of proof tree. In: Proceedings of Mathematical Foundations of Programing Semantics (MFPS). Electronic Notes in Theoretical Computer Science (ENTCS). Elsevier, Amsterdam (2005)

  8. Felty A.P.: Implementing tactics and tacticals in a higher-order logic programming language. J. Autom. Reason. 11(1), 41–81 (1993)

    Article  MathSciNet  Google Scholar 

  9. Felty, A.P., Howe, D.: Generalization and reuse of tactic proofs. In: Fifth International Conference on Logic Programming and Automated Reasoning LPAR. Lecture Notes in Computer Science, vol. 822. Springer, Berlin (1994)

  10. Gordon, M.J.C., Milner, R., Wadsworth, C.P.: Edinburgh LCF. Lecture Notes in Computer Science, vol. 78, Springer, Berlin (1979)

  11. Harrison, J.: Towards self-verification of HOL Light. In: Proceeding of the IJCAR 2006, the Third International Joint Conference on Automated Reasoning. Lecture Notes in Computer Science, vol. 4130, pp. 177–191. Springer, Berlin (2006)

  12. Heneveld, A.: Using features in interactive theorem proving. PhD thesis, School of Informatics, University of Edinburgh (2006)

  13. Jojgov G.I., Geuvers H.: A calculus of tactics and its operational semantics. Electr. Notes Theor. Comput. Sci. 93, 118–137 (2004)

    Article  Google Scholar 

  14. Kirchner, F.: Coq tacticals and PVS strategies: a small-step semantics. In: Archer, M., Di Vito, B., Muñoz, C. (eds.) Design and Application of Strategies/Tactics in Higher Order Logics, pp. 69–83. NASA/CP-2003-212448 (2003)

  15. Kirchner, F., Muñoz, C.: pvs#: streamlined tacticals for PVS. In: Proceedings of STRATEGIES’06 (2006)

  16. Kohlhase, M.: OMDoc—an open markup format for mathematical documents. Lecture Notes in Computer Science, vol. 4180. Springer, Berlin (2006)

  17. Kolbe, T., Walther, C.: Reusing proofs. In: Cohn, A.G. (ed.) Proceedings of the Eleventh European Conference on Artificial Intelligence, pp. 80–84, Chichester, Wiley, New York (1994)

  18. Kreitz, C.: The nuprl proof development system, version 5—reference manual and user’s guide. Department of Computer Science, Cornell-University, Ithaca 14853-7501 (2002)

  19. Martin A.P., Gardiner P.H.B., Woodcock J.C.P.: A tactic calculus—full version. Formal Aspects Comput. 8(E), 224–285 (1996)

    Google Scholar 

  20. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL—a proof assistant for higher-order logic. Lecture Notes in Computer Science, vol. 2283, Springer, Berlin (2002)

  21. Oliveira M.V.M., Cavalcanti A.L.C., Woodcock J.C.P.: ArcAngel: a tactic language for refinement. Formal Aspects Comput. 15(1), 28–47 (2003)

    Article  MATH  Google Scholar 

  22. Paulson L.C.: Isabelle: the next 700 theorem provers. In: Odifreddi, P. (eds) Logic and Computer Science, pp. 361–386. Academic Press, London (1990)

    Google Scholar 

  23. Pollack R.: On extensibility of proof checkers. In: Dybjer, P., Nordström, B., Smith, J.M. (eds) TYPES. Lecture Notes in Computer Science, vol. 996, pp. 140–161. Springer, Berlin (1994)

    Google Scholar 

  24. Sacerdoti Coen C., Tassi E., Zacchiroli S.: Tinycals: Step by step tacticals. Electr. Notes Theor. Comput. Sci. 174(2), 125–142 (2007)

    Article  Google Scholar 

  25. Schairer, A., Autexier, S., Hutter, D.: A pragmatic approach to reuse in tactical theorem proving. In: Proceedings of the 4th International Workshop on Strategies in Automated Deduction (STRATEGIES 2001). Electronic Notes in Computer Science, vol. 58, pp. 203–216. Elsevier, Amsterdam (2001)

  26. Siekmann J., Benzmüller C., Autexier S.: Computer supported mathematics with OMEGA. J. Appl. Logic 4(4), 533–559 (2006)

    Article  MATH  Google Scholar 

  27. Siekmann J., Hess S., Benzmüller C., Cheikhrouhou L., Fiedler A., Horacek H., Kohlhase M., Konrad K., Meier A., Melis E., Pollet M., Sorge V.: LOUI: lovely omega user interface. Formal Aspects Comput. 11, 326–342 (1999)

    Article  Google Scholar 

  28. Slind K., Norrish M.: A brief overview of HOL4. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds) Theorem Proving in Higher-Order Logics. TPHOLs 2008 Lecture Notes in Computer Science, vol. 5170, pp. 28–32. Springer, Berlin (2008)

    Chapter  Google Scholar 

  29. Wagner, M., Autexier, S., Benzmüller, C.: PLATO: A mediator between text-editors and proof assistance systems. In: Autexier, S., Benzmüller, C. (eds.) 7th Workshop on User Interfaces for Theorem Provers (UITP’06). Electronic Notes on Theoretical Computer Science, vol. 174(2), pp. 87–107. Elsevier (2006)

  30. 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.) Theorem Proving in Higher Order Logics TPHOLs’99. Lecture Notes in Computer Science, vol. 1690, pp. 167–184. Springer, Berlin (1999)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christoph Lüth.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Aspinall, D., Denney, E. & Lüth, C. Tactics for Hierarchical Proof. Math.Comput.Sci. 3, 309–330 (2010). https://doi.org/10.1007/s11786-010-0025-6

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11786-010-0025-6

Keywords

Navigation