A Proof-Theoretic Approach to Tactics

  • Kamal Aboul-Hosn
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4108)


Tactics and tacticals, programs that represent and execute several steps of deduction, are fundamental to theorem provers providing automated tools for creating proofs quickly and easily. The language used for tactics is usually a full-scale programming language, separate from the language used to represent proofs. Consequently, there is also a separation between the use of theorems in proofs and the use of tactics. Our goal is to represent tactics in a way that allows them to be treated at the same level as proofs and theorems. We also want a representation that allows us to formally translate tactics into the proof steps they represent. We extend a system presented in [1,2] to represent tactics at the same level as theorems and move freely from tactics to proof steps and provide an example of its usefulness.


Typing Rule Proof Rule Proof Step Proof Search Proof Term 
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.
    Kozen, D., Ramanarayanan, G.: A proof-theoretic approach to knowledge acquisition. Technical Report 2005-1985, Computer Science Department, Cornell University (2005)Google Scholar
  2. 2.
    Aboul-Hosn, K., Damhøj Andersen, T.: A proof-theoretic approach to hierarchical math library organization. In: Kohlhase, M. (ed.) MKM 2005. LNCS (LNAI), vol. 3863, pp. 1–16. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 3.
    Giunchiglia, F., Traverso, P.: Program tactics and logic tactics. Annals of Mathematics and Artificial Intelligence 17(3–4), 235–259 (1996)MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Syme, D.: Three tactic theorem proving. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 203–220. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  5. 5.
    Kreitz, C.: The Nuprl Proof Development System, Version 5: Reference Manual and User’s Guide. Department of Computer Science, Cornell University (2002)Google Scholar
  6. 6.
    The Coq Development Team: The Coq Proof Assistant Reference Manual – Version V7.3 (2002),
  7. 7.
    Wenzel, M., Berghofer, S.: The Isabelle System Manual (2003)Google Scholar
  8. 8.
    Felty, A.: Implementing tactics and tacticals in a higher-order logic programming language. Journal of Automated Reasoning 11(1), 43–81 (1993)MATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Appel, A.W., Felty, A.P.: Dependent types ensure partial correctness of theorem provers. J. Funct. Program. 14(1), 3–19 (2004)MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Delahaye, D.: A tactic language for the system Coq. In: Parigot, M., Voronkov, A. (eds.) LPAR 2000. LNCS (LNAI), vol. 1955, pp. 85–95. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  11. 11.
    Sørensen, M.H., Urzyczyn, P.: Lectures on the Curry–Howard isomorphism. Available as DIKU Rapport 98/14 (1998)Google Scholar
  12. 12.
    Morris, J.H.: Lambda calculus models of programming languages. Technical report, Massachuseets Instititue of Technology, Laboratory for Computer Science (1968)Google Scholar
  13. 13.
    Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)Google Scholar
  14. 14.
    Kozen, D.: Kleene algebra with tests. Transactions on Programming Languages and Systems 19(3), 427–443 (1997)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Kamal Aboul-Hosn
    • 1
  1. 1.Department of Computer ScienceCornell University IthacaNew YorkUSA

Personalised recommendations