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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
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).
Church, Alonzo, ‘A formulation of the simple theory of types’,J. Symbolic Logic 5, 56–68 (1940).
Constable, Robert L.et al., Implementing Mathematics with the Nuprl Proof Development System, Prentice-Hall (1986).
Coquand, Thierry and Huet, Gérard, ‘The calculus of constructions’,Information and Computation 76(2/3), 95–120 (1988).
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).
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).
Elliott, Conal, ‘Higher-order unification with dependent types’, inRewriting Techniques and Applications, pp. 121–136, Springer-Verlag Lecture Notes in Computer Science (1989).
Elliott, Conal and Pfenning, Frank, ‘eLP, a Common Lisp Implementation of λProlog’, (1990).
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).
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).
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).
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).
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).
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).
Gardner, Philippa,Representing Logics in Type Theory. Ph.D. thesis, University of Edinburgh, Technical Report CST-93-92 (1992).
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).
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).
Gordon, Mike, ‘HOL: a machine oriented formulation of higher-order logic’, Technical Report 68, University of Cambridge (1985).
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).
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).
Harper, Robert, Honsell, Furio, and Plotkin, Gordon, ‘A framework for defining logics’,J. ACM 40(1), 143–184 (1993).
Hindley, J. Roger and Seldin, Jonathan P.,Introduction to Combinatory Logic and Lambda Calculus, Cambridge University Press (1986).
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).
Huet, Gérard, ‘A unification algorithm for typed λ-calculus’,Theoretical Computer Science 1, 27–57 (1975).
Korf, Richard E., ‘Depth-first iterative-deepening: an optimal admissible tree search’,Artificial Intelligence 27, 97–109 (1985).
Martin-Löf, Per,Intuitionistic Type Theory, Studies in Proof Theory, Lecture Notes. BIBLIOPOLIS, Napoli (1984).
Miller, Dale, ‘A logic programming language with lambda-abstraction, function variables, and simple unification’,J. Logic and Computation 1(4), 497–536 (1991).
Miller, Dale, ‘Unification under a mixed prefix’,J. Symbolic Computation 14, 321–358 (1992).
Miller, Dale and Nadathur, Gopalan, ‘A logic programming approach to manipulating formulas and programs’,IEEE Symposium on Logic Programming, pp. 379–388 (1987).
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).
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).
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).
Nadathur, Gopalan and Miller, Dale, ‘Higher-order horn clauses’,J. ACM 37(4), 777–814 (1990).
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).
Paulson, Lawrence C., ‘The foundation of a generic theorem prover’,J. Automated Reasoning 5(3), 363–397 (1989).
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).
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).
Prawitz, Dag,Natural Deduction, Almqvist & Wiksell, Uppsala (1965).
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).
Sterling, Leon and Shapiro, Ehud,The Art of Prolog: Advanced Programming Techniques, MIT Press, Cambridge, MA (1986).
Author information
Authors and Affiliations
Rights 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
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF00881900