Skip to main content
Log in

Implementing tactics and tacticals in a higher-order logic programming language

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

We argue that a logic programming language with a higher-order intuitionistic logic as its foundation can be used both to naturally specify and implement tactic-style theorem provers. The language extends traditional logic programming languages by replacing first-order terms with simply-typed λ-terms, replacing first-order unification with higher-order unification, and allowing implication and universal quantification in queries and the bodies of clauses. Inference rules for a variety of inference systems can be naturally specified in this language. The higher-order features of the language contribute to a concise specification of provisos concerning variable occurrences in formulas and the discharge of assumptions present in many inference systems. Tactics and tacticals, which provide a framework for high-level control over search for proofs, can be directly and naturally implemented in the extended language. This framework serves as a starting point for implementing theorem provers and proof systems that can integrate many diversified operations on formulas and proofs for a variety of logics. We present an extensive set of examples that have been implemented in the higher-order logic programming language λProlog.

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.

Institutional subscriptions

Similar content being viewed by others

References

  1. Brisset, Pascal and Ridoux, Olivier, ‘The architecture of an implementation of λProlog: Prolog/Mali’, in Dale Miller (Ed.),Proceedings of the Workshop on the λProlog Programming Language, University of Pennsylvania Technical Report MS-CIS-92-86, pp. 41–64 (1992).

  2. Church, Alonzo, ‘A formulation of the simple theory of types’,J. Symbolic Logic 5, 56–68 (1940).

    Google Scholar 

  3. Constable, Robert L.et al., Implementing Mathematics with the Nuprl Proof Development System, Prentice-Hall (1986).

  4. Coquand, Thierry and Huet, Gérard, ‘The calculus of constructions’,Information and Computation 76(2/3), 95–120 (1988).

    Google Scholar 

  5. deBruijn, N. G., ‘A survey of the project AUTOMATH’, inTo H. B. Curry: Essays in Combinatory Logic, Lambda Calculus, and Formalism, pp. 579–606, Academic Press (1980).

  6. Dietzen, Scott and Pfenning, Frank, ‘Higher-order and modal logic as a framework for explanation-based generalization’, in Alberto Maria Segre (Ed.),Sixth International Workshop on Machine Learning, pp. 447–449, Morgan Kaufmann (1989).

  7. Elliott, Conal, ‘Higher-order unification with dependent types’, inRewriting Techniques and Applications, pp. 121–136, Springer-Verlag Lecture Notes in Computer Science (1989).

  8. Elliott, Conal and Pfenning, Frank, ‘eLP, a Common Lisp Implementation of λProlog’, (1990).

  9. Elliott, Conal and Pfenning, Frank, ‘A semi-functional implementation of a higher-order logic programming language’, in Peter Lee (Ed.),Topics in Advanced Language Implementation, pp. 289–325, MIT Press (1991).

  10. Felty, Amy,Specifying and Implementing Theorem Provers in a Higher-Order Logic Programming Language, Ph.D. thesis, University of Pennsylvania, Technical Report MS-CIS-89-53 (1989).

  11. Felty, Amy, ‘Encoding dependent types in an intuitionistic logic’, in Gérard Huet and Gordon Plotkin (Eds.),Logical Frameworks, pp. 215–251, Cambridge University Press (1991).

  12. Felty, Amy, ‘A logic program for transforming sequent proofs to natural deduction proofs’, in Peter Schroeder-Heister (Ed.),Proceedings of the First International Workshop on Extensions of Logic Programming, pp. 157–178, Springer-Verlag Lecture Notes in Artificial Intelligence (1991).

  13. Felty, Amy, ‘A logic programming approach to implementing higher-order term rewriting’, in Lars-Henrik Eriksson, Lars Hallnäs, and Peter Schroeder-Heister (Eds.),Proceedings of the Second International Workshop on Extensions of Logic Programming, pp. 135–161, Springer-Verlag Lecture Notes in Artificial Intelligence (1992).

  14. Felty, Amy and Miller, Dale, ‘Specifying theorem provers in a higher-order logic programming language’, inNinth International Conference on Automated Deduction, pp. 61–80, Springer-Verlag Lecture Notes in Computer Science (1988).

  15. Gardner, Philippa,Representing Logics in Type Theory. Ph.D. thesis, University of Edinburgh, Technical Report CST-93-92 (1992).

  16. Gentzen, Gerhard, ‘Investigations into logical deductions, 1935’, in M. E. Szabo (Ed.),The Collected Papers of Gerhard Gentzen, pp. 68–131, North-Holland Publishing Co., Amsterdam (1969).

    Google Scholar 

  17. Gordon, Michael J., Milner, Arthur J. and Wadsworth, Christopher P.,Edinburgh LCF: A Mechanised Logic of Computation, Lecture Notes in Computer Science, Vol. 78, Springer-Verlag (1979).

  18. Gordon, Mike, ‘HOL: a machine oriented formulation of higher-order logic’, Technical Report 68, University of Cambridge (1985).

  19. Hagiya, Masami, ‘Programming by example and proving by example using higher-order unification’, inTenth International Conference on Automated Deduction, pp. 588–602. Springer-Verlag Lecture Notes in Artificial Intelligence (1990).

  20. Hannan, John and Miller, Dale, ‘A meta language for functional programs’, in H. Abramson and M. Rogers (Eds.),Meta Programming in Logic Programming, Ch. 24, pp. 453–476, MIT Press (1989).

  21. Harper, Robert, Honsell, Furio, and Plotkin, Gordon, ‘A framework for defining logics’,J. ACM 40(1), 143–184 (1993).

    Google Scholar 

  22. Hindley, J. Roger and Seldin, Jonathan P.,Introduction to Combinatory Logic and Lambda Calculus, Cambridge University Press (1986).

  23. Howard, William A., ‘The formulae-as-type notion of construction, 1969’, inTo H. B. Curry: Essays in Combinatory Logic, Lambda Calculus, and Formalism, pp. 479–490, Academic Press (1980).

  24. Huet, Gérard, ‘A unification algorithm for typed λ-calculus’,Theoretical Computer Science 1, 27–57 (1975).

    Google Scholar 

  25. Korf, Richard E., ‘Depth-first iterative-deepening: an optimal admissible tree search’,Artificial Intelligence 27, 97–109 (1985).

    Google Scholar 

  26. Martin-Löf, Per,Intuitionistic Type Theory, Studies in Proof Theory, Lecture Notes. BIBLIOPOLIS, Napoli (1984).

  27. Miller, Dale, ‘A logic programming language with lambda-abstraction, function variables, and simple unification’,J. Logic and Computation 1(4), 497–536 (1991).

    Google Scholar 

  28. Miller, Dale, ‘Unification under a mixed prefix’,J. Symbolic Computation 14, 321–358 (1992).

    Google Scholar 

  29. Miller, Dale and Nadathur, Gopalan, ‘A logic programming approach to manipulating formulas and programs’,IEEE Symposium on Logic Programming, pp. 379–388 (1987).

  30. Miller, Dale, Nadathur, Gopalan, Pfenning, Frank, and Scedrov, Andre, ‘Uniform proofs as a foundation for logic programming’,Annals of Pure and Applied Logic 51, 125–157 (1991).

    Google Scholar 

  31. Nadathur, Gopalan,A Higher-Order Logic as the Basis for Logic Programming, Ph.D. thesis, University of Pennsylvania, Technical Report MS-CIS-87-48 (1987).

  32. Nadathur, Gopalan and Jayaraman, Bharat, ‘Towards a WAM model for λProlog’, in Ewing Lusk and Ross Overbeek (Eds.),Proceedings of the North American Conference on Logic Programming, pp. 1180–1198 (1989).

  33. Nadathur, Gopalan and Miller, Dale, ‘Higher-order horn clauses’,J. ACM 37(4), 777–814 (1990).

    Google Scholar 

  34. Pareschi, Remo and Miller, Dale, ‘Extending definite clause grammars with scoping constructs’, in D. H. D. Warren and P. Szeredi (Eds.),International Conference in Logic Programming, pp. 373–389, MIT Press (1990).

  35. Paulson, Lawrence C., ‘The foundation of a generic theorem prover’,J. Automated Reasoning 5(3), 363–397 (1989).

    Google Scholar 

  36. Pfenning, Frank, ‘Logic programming in the LF logical framework’, in Gérard Huet and Gordon Plotkin (Eds.),Logical Frameworks, pp. 149–181, Cambridge University Press (1991).

  37. Pfenning, Frank and Elliot, Conal, ‘Higher-order abstract syntax’, inProceedings of the ACM-SIGPLAN Conference on Programming Language Design and Implementation, pp. 199–208 (1988).

  38. Prawitz, Dag,Natural Deduction, Almqvist & Wiksell, Uppsala (1965).

    Google Scholar 

  39. Prawitz, Dag, ‘Ideas and results in proof theory’, in J.E. Fenstad (Ed.),Proceedings of the Second Scandinavian Logic Symposium, Vol. 63 ofStudies in Logic and the Foundations of Mathematics, pp. 235–307, North-Holland (1971).

  40. Sterling, Leon and Shapiro, Ehud,The Art of Prolog: Advanced Programming Techniques, MIT Press, Cambridge, MA (1986).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Felty, A. Implementing tactics and tacticals in a higher-order logic programming language. J Autom Reasoning 11, 43–81 (1993). https://doi.org/10.1007/BF00881900

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00881900

Key words

Navigation