Results 1 
4 of
4
Specifying and Implementing Theorem Provers in a HigherOrder Logic Programming Language
, 1989
"... We argue that a logic programming language with a higherorder intuitionistic logic as its foundation can be used both to naturally specify and implement theorem provers. The language extends traditional logic programming languages by replacing firstorder terms with simplytyped λterms, replacing ..."
Abstract

Cited by 46 (7 self)
 Add to MetaCart
We argue that a logic programming language with a higherorder intuitionistic logic as its foundation can be used both to naturally specify and implement theorem provers. The language extends traditional logic programming languages by replacing firstorder terms with simplytyped λterms, replacing firstorder unification with higherorder unification, and allowing implication and universal quantification in queries and the bodies of clauses. Inference rules for a variety of proof systems can be naturally specified in this language. The higherorder features of the language contribute to a concise specification of provisos concerning variable occurrences in formulas and the discharge of assumptions present in many proof systems. In addition, abstraction in metaterms allows the construction of terms representing object level proofs which capture the notions of abstractions found in many proof systems. The operational interpretations of the connectives of the language provide a set of basic search operations which describe goaldirected search for proofs. To emphasize the generality of the metalanguage, we compare it to another general specification language: the Logical Framework (LF). We describe a translation which compiles a specification of a logic in LF to a set of formulas of our metalanguage, and
Presenting intuitive deductions via symmetric simplification
 In CADE10: Proceedings of the tenth international conference on Automated deduction
, 1990
"... In automated deduction systems that are intended for human use, the presentation of a proof is no less important than its discovery. For most of today’s automated theorem proving systems, this requires a nontrivial translation procedure to extract humanoriented deductions from machineoriented pro ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
In automated deduction systems that are intended for human use, the presentation of a proof is no less important than its discovery. For most of today’s automated theorem proving systems, this requires a nontrivial translation procedure to extract humanoriented deductions from machineoriented proofs. Previously known translation procedures, though complete, tend to produce unintuitive deductions. One of the major flaws in such procedures is that too often the rule of indirect proof is used where the introduction of a lemma would result in a shorter and more intuitive proof. We present an algorithm, symmetric simplification, for discovering useful lemmas in deductions of theorems in first and higherorder logic. This algorithm, which has been implemented in the TPS system, has the feature that resulting deductions may no longer have the weak subformula property. It is currently limited, however, in that it only generates lemmas of the form C ∨ ¬C ′ , where C and C ′ have the same negation normal form. 1
grants DAA2984K0061, DAA298490027Specifying Theorem Provers in a HigherOrder Logic Programming Language
, 1988
"... Since logic programming systems directly implement search and unification and since these operations are essential for the implementation of most theorem provers, logic programming languages should make ideal implementation languages for theorem provers. We shall argue that this is indeed the case i ..."
Abstract
 Add to MetaCart
Since logic programming systems directly implement search and unification and since these operations are essential for the implementation of most theorem provers, logic programming languages should make ideal implementation languages for theorem provers. We shall argue that this is indeed the case if the logic programming language is extended in several ways. We present an extended logic programming language where firstorder terms are replaced with simplytyped Aterms, higherorder unification replaces firstorder unification, and implication and universal quantification are allowed in queries and the bodies of clauses. This language naturally specifies inference rules for various proof systems. The primitive search operations required to search for proofs generally have very simple implementations using the logical connectives of this extended logic programming language. Higherorder unification, which provides sophisticated pattern matching on formulas and proofs, can be used to determine when and at what instance an inference rule can be employed in the search for a proof. Tactics and tacticals, which provide a framework for highlevel control over search, can also be directly implemented in this extended language. The theorem provers presented in this paper have been implemented in the higherorder logic programming language AProlog. 1