All Projects → ProofGeneral → Pg

ProofGeneral / Pg

Licence: gpl-2.0
This repo is the new home of Proof General

Labels

Projects that are alternatives of or similar to Pg

Company Coq
A Coq IDE build on top of Proof General's Coq mode
Stars: ✭ 297 (-19.07%)
Mutual labels:  coq, emacs
Use Package
A use-package declaration for simplifying your .emacs
Stars: ✭ 3,748 (+921.25%)
Mutual labels:  emacs
.spacemacs.d
My spacemacs configuration.
Stars: ✭ 307 (-16.35%)
Mutual labels:  emacs
.emacs.d
🎉 Personal GNU Emacs configuration
Stars: ✭ 313 (-14.71%)
Mutual labels:  emacs
Indent Guide
Show vertical lines to guide indentation
Stars: ✭ 307 (-16.35%)
Mutual labels:  emacs
Projectile
Project Interaction Library for Emacs
Stars: ✭ 3,463 (+843.6%)
Mutual labels:  emacs
Emacs Emojify
Display emojis in Emacs
Stars: ✭ 303 (-17.44%)
Mutual labels:  emacs
Ensime Emacs
ENhanced Scala Interaction Mode for Emacs
Stars: ✭ 361 (-1.63%)
Mutual labels:  emacs
Math Comp
Mathematical Components
Stars: ✭ 344 (-6.27%)
Mutual labels:  coq
Base16 Emacs
Base16 themes for Emacs
Stars: ✭ 314 (-14.44%)
Mutual labels:  emacs
Lsp Mode
Emacs client/library for the Language Server Protocol
Stars: ✭ 3,691 (+905.72%)
Mutual labels:  emacs
Evil Mc
Multiple cursors implementation for evil-mode
Stars: ✭ 308 (-16.08%)
Mutual labels:  emacs
Helm Bibtex
Search and manage bibliographies in Emacs
Stars: ✭ 328 (-10.63%)
Mutual labels:  emacs
Swift Mode
Emacs support for Apple's Swift programming language.
Stars: ✭ 308 (-16.08%)
Mutual labels:  emacs
Org Sidebar
A helpful sidebar for Org mode
Stars: ✭ 354 (-3.54%)
Mutual labels:  emacs
Markovkeyboard
keyboard layout that changes by markov frequency
Stars: ✭ 307 (-16.35%)
Mutual labels:  emacs
Coq
Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
Stars: ✭ 3,566 (+871.66%)
Mutual labels:  coq
Org Wiki
Wiki for Emacs org-mode built on top of Emacs org-mode.
Stars: ✭ 319 (-13.08%)
Mutual labels:  emacs
Sayid
A debugger for Clojure
Stars: ✭ 367 (+0%)
Mutual labels:  emacs
Fiat Crypto
Cryptographic Primitive Code Generation by Fiat
Stars: ✭ 359 (-2.18%)
Mutual labels:  coq

Proof General — Organize your proofs!

CI 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

Proof General requires GNU Emacs 24.5 or later.

The current policy aims at supporting multiple Emacs versions, including those available in Debian Stable as well as in Ubuntu LTS distributions until their End-Of-Support.

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)
;; (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") ; see remark below
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

Remark: If you have Emacs 26.1 (which is precisely the packaged version in Debian 10), you may get the error message Failed to download 'melpa' archive during the package refresh step. This is a known bug (debbug #34341) which has been fixed in Emacs 26.3 and 27.1, while a simple workaround consists in uncommenting the line (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") above in your .emacs.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].