[ << ] [ >> ] [Top] [Contents] [Index] [ ? ]


Welcome to Proof General!

Proof General a generic Emacs-based interface for proof assistants.

This manual contains information for adapting Proof General to new proof assistants, and some sketches of the internal implementation. It is not intended for most ordinary users of the system. For full details about how to use Proof General, and information on its availability and installation, please see the main Proof General manual which should accompany this one.

We positively encourage the support of new systems. Proof General has grown more flexible and useful as it has been adapted to more proof assistants.

Typically, adding support for a new prover improves support for others, both because the code becomes more robust, and because new ideas are brought into the generic setting. Notice that the Proof General framework has been built as a "product line architecture": generality has been introduced step-by-step in a demand-driven way, rather than at the outset as a grand design. Despite this strategy, the interface has a surprisingly clean structure. The approach means that we fully expect hiccups when adding support for new assistants, so the generic core may need extension or modification. To support this we have an open development method: if you require changes in the generic support, please contact us (or make adjustments yourself and send them to us).

Proof General has a home page at https://proofgeneral.github.io. Visit this page for the latest version of the manuals, other documentation, system downloads, etc.


The aim of the Proof General project is to provide a powerful and configurable interfaces which help user-interaction with interactive proof assistants.

The strategy Proof General uses is to targets power users rather than novices; other interfaces have often neglected this class of users. But we do include general user interface niceties, such as toolbar and menus, which make use easier for all.

Proof General has been Emacs based so far, but plans are afoot to liberate it from the points and parentheses of Emacs Lisp. The successor project Proof General Kit proposes that proof assistants use a standard XML-based protocol for interactive proof, dubbed PGIP.

PGIP enables middleware for interactive proof tools and interface components. Rather than configuring Proof General for your proof assistant, you will need to configure your proof assistant to understand PGIP. There is a similarity however; the design of PGIP was based heavily on the Emacs Proof General framework. This means that effort on customizing Emacs Proof General to a new proof assistant is worthwhile even in the light of PGIP: it will help you to understand Proof General’s model of interaction, and moreover, we hope to use the Emacs customizations to provide experimental filters which allow supported provers to communicate using PGIP.

At the time of writing, these ideas are in early stages. For latest details, or to become involved, see the Proof General Kit webpage.


David Aspinall put together and wrote most of this manual. Thomas Kleymann wrote some of the text in Chapter 8. Much of the content is generated automatically from Emacs docstrings, some of which have been written by other Proof General developers.

[ << ] [ >> ] [Top] [Contents] [Index] [ ? ]

This document was generated on August 3, 2022 using texi2html 1.82.