This repo is the new home of Proof General
Clone or download
Permalink
Failed to load latest commit information.
acl2 Update copyright messages and improve the header of elisp files. Feb 20, 2018
ccc Cleanup Feb 7, 2012
coq Fix most doc issues raised by (checkdoc) Aug 22, 2018
doc ProofGeneral.texi: Add EasyCrypt in the intro Aug 23, 2018
easycrypt Fix most doc issues raised by (checkdoc) Aug 22, 2018
etc Bump version from 4.4.1~pre to 4.5-git Aug 22, 2018
generic Reloading proof-autoloads is safe; don't forbid it Sep 1, 2018
hol-light Update copyright messages and improve the header of elisp files. Feb 20, 2018
hol98 Update copyright messages and improve the header of elisp files. Feb 20, 2018
images Update license information for new logo May 25, 2016
isar Remove mmm and ML4PG contribs and remove references to them in code a… May 24, 2017
lego Update copyright messages and improve the header of elisp files. Feb 20, 2018
lib Fix most doc issues raised by (checkdoc) Aug 22, 2018
obsolete Remove compile-time calls to proof-ready-for-assistant Mar 8, 2017
pghaskell Fix most doc issues raised by (checkdoc) Aug 22, 2018
pgocaml Fix most doc issues raised by (checkdoc) Aug 22, 2018
pgshell Fix most doc issues raised by (checkdoc) Aug 22, 2018
phox Add link to the latex-pretty-symbols package mentioned by @craff Aug 22, 2018
previous-art Update PG's logo May 25, 2016
twelf Get rid of old-style backquotes Jan 16, 2018
.gitignore fix parallel compilation and improve assertions and debugging code Oct 27, 2016
.travis.yml CI Emacs 25.3 Mar 12, 2018
AUTHORS Update AUTHORS file for EasyCrypt Aug 22, 2018
BUGS Emphasise importance of Trac Jan 10, 2012
CHANGES Bump version from 4.4.1~pre to 4.5-git Aug 22, 2018
COMPATIBILITY Refer to Apple's operating system as macOS Oct 14, 2016
COPYING GPL Jun 21, 2002
FAQ.md Fix whitespace to comply with Markdown syntax. Jul 25, 2016
INSTALL Update INSTALL Aug 15, 2018
Makefile Remove mmm and ML4PG contribs and remove references to them in code a… May 24, 2017
Makefile.devel Bump version from 4.4.1~pre to 4.5-git Aug 22, 2018
Makefile.travis Set the minimal supported version of emacs to 24.3 instead of 24.4 Aug 22, 2018
README.md Add MELPA badge Aug 30, 2018
REGISTER Fix domain name Dec 11, 2003
pg-init.el pg-init.el: Add metadata asked by (package-lint-current-buffer) Aug 22, 2018
proof-general-pkg.el Bump version from 4.4.1~pre to 4.5-git Aug 22, 2018

README.md

Proof General — Organize your proofs!

Build Status MELPA

Overview

Proof General is a generic Emacs interface for proof assistants. The aim of the Proof General project is to provide a powerful, generic environment for using interactive proof assistants.

This is version 4.5-git of Proof General.

About Proof General branches

Two editions of Proof General are currently available:

  • the (legacy) REPL-based, stable version of Proof General, gathered in the master branch, and licensed under GPLv2;
  • the (newest) Coq-specific, experimental version of Proof General, supporting asynchronous proof processing, gathered in the async branch, and licensed under GPLv3+.

Installing Proof General

Using MELPA (recommended procedure)

MELPA is a repository of Emacs packages. Skip this step if you already use MELPA. Otherwise, add the following to your .emacs and restart Emacs:

(require 'package)
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
                    (not (gnutls-available-p))))
       (proto (if no-ssl "http" "https")))
  (add-to-list 'package-archives
               (cons "melpa" (concat proto "://melpa.org/packages/")) t))
(package-initialize)

Note: If you switch to MELPA from a previously manually-installed Proof General, make sure you removed the old versions of Proof General from your Emacs context (by removing from your .emacs the line loading PG/generic/proof-site, or by uninstalling the proofgeneral package provided by your OS package manager).

Then, run M-x package-refresh-contents RET followed by M-x package-install RET proof-general RET to install and byte-compile proof-general.

You can now open a Coq file (.v), an EasyCrypt file (.ec), or a PhoX file (.phx) to automatically load the corresponding major mode.

Using Git (manual compilation procedure)

Remove old versions of Proof General, clone the PG repo from GitHub and byte-compile the sources:

git clone https://github.com/ProofGeneral/PG ~/.emacs.d/lisp/PG
cd ~/.emacs.d/lisp/PG
make

Then add the following to your .emacs:

;; Open .v files with Proof General's Coq mode
(load "~/.emacs.d/lisp/PG/generic/proof-site")

If Proof General complains about a version mismatch, make sure that the shell's emacs is indeed your usual Emacs. If not, run the Makefile again with an explicit path to Emacs. On macOS in particular you'll probably need something like

make clean; make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs

Keeping Proof General up-to-date

Using MELPA

As explained in the MELPA documentation, updating all MELPA packages in one go is as easy as typing M-x package-list-packages RET then r (refresh the package list), U (mark Upgradable packages), and x (execute the installs and deletions).

Using Git

Assuming you have cloned the repo in ~/.emacs.d/lisp/PG, you would have to run:

cd ~/.emacs.d/lisp/PG
make clean
git pull
make

More info

See:

Links:

Supported proof assistants:

Proof General used to support other proof assistants, but those instances are no longer maintained nor available in the MELPA package:

  • Legacy support of Isabelle and LEGO
  • Experimental support of: CCC, ACL2, HOL98, Hol-Light, Lambda-Clam, Shell, Twelf
  • Obsolete instances: Demoisa, Lambda-Clam, Plastic

A few example proofs are included in each prover subdirectory.

Contributing

Contributions to this repository are placed under the BSD-3 license. As BSD-3 is compatible with both GPLv2 and GPLv3+, this means that we can merge them in both master and async branches if need be, using the same license as the rest of the codebase, while you keep all the rights on your code. For more info, see https://opensource.org/licenses/BSD-3-Clause.