***************************************************************************** * * * The code in this directory implements an interactive theorem prover * * based on a natural deduction calculus. The important ideas underlying the * * code were explored by Amy Felty as part of her doctoral dissertation. A * * shorter description of the relevant ideas may be found in the paper * * * * Specifying Theorem Provers in a Higher-Order Logic Programming * * Language, by Amy Felty and Dale Miller, Springer Verlag LNCS 310, * * pp 61 - 88, 1988. * * * * To our knowledge, the present code dates back to a demonstration of a * * Lambda Prolog interpreter at a pre-conference workshop at CADE 9 by * * Amy Felty, Dale Miller and Gopalan Nadathur. * * * * The adaptation to Teyjus code is due to Gopalan Nadathur. * * * ***************************************************************************** The code in this directory demonstrates many of the good features of Lambda Prolog: lambda terms as a means for capturing the higher-order abstract syntax of formulas and proofs, beta conversion as a means for realizing substitution correctly, benefits of higher-order programming and the support for search in logic programming as a natural basis for realizing tactics and tacticals. The contents of particular files are as follows: listmanip.sig, Some list manipulation utilities needed in the listmanip.mod implementation of tactics logic.sig Defines kinds for expression categories and constants for encoding the logical vocabulary of a first-order logic nonlogical.sig Encodings for the nonlogical vocabulary of a first-order logic formulas.sig, Illustrations of formula encodings; these encodings are formulas.mod also useful in theorem proving demonstrations ndproofs.sig Encodings of proofs in the natural deduction calculus goaltypes.sig Encodings for goals in a tactic and tactical style theorem prover ndtac.sig, Implementation of primitive tactics for a fragment of ndtac.mod first-order logic goalred.sig, Code for simplifying goals based on the recognition of goalred.mod trivially solved subparts tacticals.sig, Implementation of some tacticals, i.e. methods for tacticals.mod combining atomic proof rules (realized through tactics) into larger (derived) rules inter.sig, An interactive theorem prover based on the use of tactics inter.mod and tacticals. This is the main program in this directory script Exhibition of a run of the system Running the code ---------------- The main file to compile and load is inter. The file script contains an example session consisting of compiling, loading and executing the code in inter. The file printfile contains a bottom-up listing of the files in this directory and may be used in understanding the code. Last edited on June 26, 1999 by Gopalan Nadathur