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.
Similar content being viewed by others
References
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)
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)
Appel A.W., Felty A.P.: Dependent types ensure partial correctness of theorem provers. J. Funct. Program. 14, 3–19 (2004)
Asperti A., Coen C.S., Tassi E., Zacchiroli S.: User interaction with the matita proof assistant. J. Autom. Reason. 39(2), 109–139 (2007)
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)
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)
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)
Felty A.P.: Implementing tactics and tacticals in a higher-order logic programming language. J. Autom. Reason. 11(1), 41–81 (1993)
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)
Gordon, M.J.C., Milner, R., Wadsworth, C.P.: Edinburgh LCF. Lecture Notes in Computer Science, vol. 78, Springer, Berlin (1979)
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)
Heneveld, A.: Using features in interactive theorem proving. PhD thesis, School of Informatics, University of Edinburgh (2006)
Jojgov G.I., Geuvers H.: A calculus of tactics and its operational semantics. Electr. Notes Theor. Comput. Sci. 93, 118–137 (2004)
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)
Kirchner, F., Muñoz, C.: pvs#: streamlined tacticals for PVS. In: Proceedings of STRATEGIES’06 (2006)
Kohlhase, M.: OMDoc—an open markup format for mathematical documents. Lecture Notes in Computer Science, vol. 4180. Springer, Berlin (2006)
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)
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)
Martin A.P., Gardiner P.H.B., Woodcock J.C.P.: A tactic calculus—full version. Formal Aspects Comput. 8(E), 224–285 (1996)
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)
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)
Paulson L.C.: Isabelle: the next 700 theorem provers. In: Odifreddi, P. (eds) Logic and Computer Science, pp. 361–386. Academic Press, London (1990)
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)
Sacerdoti Coen C., Tassi E., Zacchiroli S.: Tinycals: Step by step tacticals. Electr. Notes Theor. Comput. Sci. 174(2), 125–142 (2007)
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)
Siekmann J., Benzmüller C., Autexier S.: Computer supported mathematics with OMEGA. J. Appl. Logic 4(4), 533–559 (2006)
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)
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)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11786-010-0025-6