15-815 Automated Theorem Proving

Contents Groups | Methods | Tasks | References | Implementations

We will form groups to design and implement theorem provers for first-order intuitionistic logic. In each week (Thursday to Thursday) there should be a well-defined plan for the coming week and a result to be reported at the end of the week. The plan for the next week and the report for the previous week should be e-mailed to the instructor prior to Thursday's lecture. Each week someone else should write and send the plan and report.

  • The plan should be about 1-2 pages, and be organized according to all tasks relevant for that week.
  • The report should be about 2-3 pages and summarize the accomplishments or failures with respect to the various planned tasks.
  • The code should be tagged in the CVS repository (week1, week2, etc.) and be available for inspection. It should compile and run to the extent described in the report.


Red Green Blue
Deepak Garg
Tom Murphy
Greg Price
Jason Reed
Noam Zeilberger
Kevin Donnelly
Tyler Gibson
Neel Krishnaswami
Stephen Magill
Sungwoo Park
Gosia Biernacka
Darek Biernacki
Don Smith
Week 1 Plans
Week 1 Report
Week 2 Plans
Week 2 Report
Week 3 Plans
Week 3 Report
Week 4 Plans
Week 4 Report
Week 5 Plans
Week 5 Report
Week 1 Plans
Week 1 Report
Week 2 Plans
Week 2 Report
Week 3 Plans
Week 3 Report (PS)
Week 4 Plans
Week 1 Plans
Week 1 Report
Week 2 Plans
Week 2 Report
Week 3 Plans
Week 3 Report
Week 4 Plans
Week 4 Report
Week 5 Plans
Week 5 Report
Week 6 Report


Each group should implement either a prover based on backward search or a prover based on forward search. Below are some possible intermediate goals for each type of prover, not necessarily in the right temporal order.

Backward Search

  • Dyckhoff's contraction-free sequent calculus for propositional intuitionistic logic (already implemented in Assignment 2).
  • Exploiting propositional focusing.
  • A first-order intuitionistic tableau prover.
  • Exploiting focusing.
  • Exploiting labelled deduction and prefix unification.
  • Integrating equality.
  • Optimizations: disconnections, loop detection, types, constraints.

Forward Search

  • Inverse method prover for intuitionistic propositional logic (already implemented in Assignment 4).
  • Exploiting propositional focusing.
  • A first-order intuitionistic inverse method prover.
  • Exploiting focusing.
  • Integrating equality.
  • Optimizations: indexing, selection, ordering, types, constraints.


For each prover or group a number of tasks arise. You should try to rotate between tasks so everyone in the group gets some exposure to various aspects of the prover.

Interface and Parsing

Use the first-order formula (FOF) syntax of the TPTP (Thousands of Problems for Theorem Provers) library. I hope we can start a section on intuitionistic theorems in the library. Note that all Horn problems in the library should be valid problems for your prover (perhaps after syntactic translation).

Inference Engine

The search engine includes the basic inference mechanism, termination criteria, and (in the first order case) unification and equational reasoning.

Testing and Validation

Besides the usual testing, our theorem provers will produce proofs terms much must be independently verifiable by a bi-directional checker. In addition, there should be some regression testing methods.

Evaluation and Examples Suites

Various choices, heuristic, or stages in the prover should be evaluated against each other. This is should employ some problems as gleaned from the TPTP as well as some of your own theories. Some sources:

  • Horn theories (possibly syntactically transformed).
  • Classical theories, using double-negation or similar translations.
  • Automatically generated test problems.
  • Example suites from other intuitionistic provers.
  • Constructive geometry (Jan von Plato).
  • Qualitative spatial reasoning in intuitionistic logic (e.g., Anthony Cohn or Brandon Bennett).
  • Constructive set theory.
  • Other constructive theories in Coq, Nuprl or related systems (but beware the pervasive use of induction).

Documentation and Summary

Besides the weekly plan and summary, there should be sufficient documentation of the code to make it readable. Also, there should be a final summary paper describing all aspects of the project. This includes the interface, the inference engine, the validation techniques, the sample suites and the empirical results.


Besides the lecture notes, here are further references that may be useful to each kind of prover.

Forward Search (Inverse Method and Resolution)

These are only a few pointers, including one implementation home page. Further references can be found in the papers below and among the handouts.

[T96] Tanel Tammet.
A Resolution Theorem Prover for Intuitionistic Logic
Draft manuscript, 1996.
Preliminary version appeared at CADE-13, pp.2-16, Springer Verlag LNCS 1104, 1996.
Implementation home page
[DV01a] Anatoli Degtyarev and Andrei Voronkov.
The inverse method.
Handbook of Automated Reasoning, Vol.1, pp.179-272, Elsevier Science and MIT Press, 2001.
Corrigendum for pp.200-201.

Backward Search (Tableaux and Connections)

These are only a few pointers, including two currently available implementations. Further references can be found in the papers below and among the handouts.

[O97] Jens Otten.
ileanTAP: An Intuitionistic Theorem Prover.
In D.Galmiche, editor, Proceedings of the International Conference on Tableaux and Related Systems (TABLEAUX'97), pp.307-312, Springer Verlag LNAI 1227, 1997.
Implementation home page
[SFH92] Dan Sahlin, Torkel Franzén, Seif Haridi.
An Intuitionistic Predicate Logic Theorem Prover
Journal of Logic and Computation, Vol.2(5), pp.619-656, 1992.
Earlier version available as Technical Report SICS-89-01, Swedish Institute of Computer Science, April 1989.
Implementation home page
[W01] Arild Waaler.
Connections in nonclassical logics.
Handbook of Automated Reasoning, Vol.2, pp.1487-1578, Elsevier Science and MIT Press, 2001.
[W90] Lincoln Wallen.
Automated Proof Search in Non-Classical Logics.
MIT Press, 1990.


  • ileanTAP by Jens Otten (see [097]), based on the connection method (backward).
  • Gandalf by Tanel Tammet (see [T96]), based on the inverse method (forward).
  • ft by Dan Sahlin, Torkel Franzén and Seif Haridi (see [SFH92]), based on the tableaux method (backward).

[ Home | Schedule | Assignments | Handouts | Software | Resources ]

Frank Pfenning