Proof Checking of Natural Mathematical Documents, with optional support for Isabelle Prover IDE (Isabelle/PIDE – Isabelle/jEdit).
You can get a fully integrated version of Naproche for Linux, macOS and Windows that is bundled with Isabelle. See https://naproche.github.io/download.html for more information.
Ensure that curl, g++, gcc, git, gmp, make, and hg (Mercurial) are installed:
-
Linux: e.g.
sudo apt install curl g++ gcc git libgmp-dev make mercurial -
macOS: e.g.
brew install mercurialor download from https://www.mercurial-scm.org -
Windows: use Cygwin64 with packages
curl,gcc-core,git,make, andmercurial(via Cygwin setup-x86_64.exe)
To build a Naproche component for Isabelle, ensure that all necessary LaTeX tools and packages are installed:
-
Linux: e.g.
sudo apt install texlive-xetex texlive-latex-extra texlive-bibtex-extra -
Windows: use Cygwin64 with packages
texlive-collection-latex,texlive-collection-latexextra,texlive-collection-xetex,texlive-collection-pstricksandtexlive-collection-bibtexextra
Commands below assume the same current directory: repository clones
isabelle_naproche and naproche are put side-by-side.
-
Initial clone:
hg clone https://isabelle.sketis.net/repos/isabelle-release isabelle_naproche git clone https://github.com/naproche/naproche.git naproche isabelle_naproche/Admin/init -U https://isabelle.sketis.net/repos/isabelle-release -I Isabelle_Naproche -V ./naproche/Isabelle isabelle_naproche/bin/isabelle components -u ./naproche
-
Later updates:
git --git-dir="./naproche/.git" pull isabelle_naproche/Admin/init -V ./naproche/Isabelle
-
Isabelle executable: there is no need to have
isabelle_naproche/bin/isabellein the PATH, but it is convenient to put it into a standard place once, e.g.:isabelle_naproche/bin/isabelle install "$HOME/bin" -
Build and test:
-
Shutdown Isabelle/jEdit before building Isabelle/Naproche as follows:
isabelle naproche_build
-
Run some tests as follows (make sure that your current directory is the root of the Naproche repository):
isabelle naproche_build && isabelle naproche_test -j2 isabelle naproche_test -o naproche_server_debugging -
Package the Isabelle/Naproche component as follows:
isabelle naproche_build && isabelle naproche_component -PThe result is for the current repository version, and the underlying HW + OS platform. The following reference platforms (x86_64 and arm64) are used for Isabelle2026:
- Ubuntu Linux 20.04 LTS
- macOS 12 Monterey
- Windows 10/11
The Isabelle component with its PDF documents has been produced on:
- Ubuntu Linux 24.04 LTS with packages
texlive-xetextexlive-latex-extratexlive-bibtex-extra
-
-
Isabelle Prover IDE
- Open ForTheL examples in Isabelle/jEdit, e.g.
isabelle jedit math/examples/cantor.ftl
- Open Isabelle development environment with ForTheL examples, e.g.
isabelle jedit -l Pure Isabelle/Test/Test.thy
- Open ForTheL examples in Isabelle/jEdit, e.g.
-
Using a recent E Theorem Prover: The E Theorem Prover bundled with Isabelle is only updated so often. If you would like to use the latest E Theorem Prover, follow the following instructions.
-
Download and install the latest version of the E Theorem Prover from The E Theorem Prover Website. Installation instructions are provided in the
READMEfile. After following these, a working E executable should be located atE/PROVER/eprover. -
To make the
eproverexecutable available to Isabelle/Naproche, we will create thee_naprocheIsabelle component. First, we prepare the directory structure of the component:mkdir -p e_naproche/etc mkdir e_naproche/$(isabelle_naproche/bin/isabelle getenv -b ISABELLE_PLATFORM64)We then copy the
eproverexecutable into the component:cp eprover/PROVER/eprover e_naproche/$(isabelle_naproche/bin/isabelle getenv -b ISABELLE_PLATFORM64)/And create a document at
e_naproche/etc/settingswith the following content:# -*- shell-script -*- :mode=shellscript: E_HOME="$COMPONENT/$ISABELLE_PLATFORM64"Finally, we add the
e_naprochecomponent to Isabelle.isabelle_naproche/bin/isabelle components -u ./e_naproche
-
To ensure that Naproche does not fall back to the E Theorem Prover component bundled with Isabelle, we need to ensure that the
e_naprochecomponent is loaded before thenaprochecomponent. First, navigate to your Isabelle user home, which can be located usingisabelle_naproche/bin/isabelle getenv -b ISABELLE_HOME_USER
Then edit the document at
etc/components. Move the path pointing to thee_naprochecomponent above that pointing to thenaprochecomponent.Finally, verify that the path returned by
isabelle getenv -b NAPROCHE_EPROVER
points to the
eproverexecutable inside thee_naprochecomponent.
-
Set the environment variables listed in the first column of the below table to the output of the commands listed in its second column.
| Environment Variable | Command |
|---|---|
NAPROCHE_HOME |
isabelle getenv -b NAPROCHE_HOME |
NAPROCHE_FORMALIZATIONS |
isabelle getenv -b NAPROCHE_FORMALIZATIONS |
NAPROCHE_EPROVER |
isabelle getenv -b NAPROCHE_EPROVER |
NAPROCHE_VAMPIRE |
isabelle getenv -b NAPROCHE_VAMPIRE |
NAPROCHE_SPASS |
isabelle getenv -b NAPROCHE_SPASS |
NAPROCHE_MATHHUB |
isabelle getenv -b NAPROCHE_MATHHUB |
Run isabelle getenv -b NAPROCHE_EXE to find the location of the
executable of command line interface of Naproche.
Generate documentation of the Haskell source code:
cabal haddock-project
This creates a haddocks directory which can be served with an HTTP server.
See CHANGELOG.md for a changelog of Naproche.
Naproche is licensed under the GPL-3. See LICENSE.md for details.
Naproche is based on the System for Automated Deduction (SAD) by Andrei Paskevich. You can find more resources in our CONTRIBUTING.md.