Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/naproche/naproche
Write formal proofs in natural language and LaTeX.
https://github.com/naproche/naproche
forthel latex naproche
Last synced: about 1 month ago
JSON representation
Write formal proofs in natural language and LaTeX.
- Host: GitHub
- URL: https://github.com/naproche/naproche
- Owner: naproche
- License: gpl-3.0
- Created: 2021-02-04T10:33:37.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-27T18:19:19.000Z (about 2 months ago)
- Last Synced: 2024-10-27T22:21:49.001Z (about 2 months ago)
- Topics: forthel, latex, naproche
- Language: Haskell
- Homepage: https://naproche.github.io
- Size: 4.66 MB
- Stars: 31
- Watchers: 9
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Naproche
Proof Checking of Natural Mathematical Documents, with optional support
for [Isabelle Prover IDE (Isabelle/PIDE – Isabelle/jEdit)][isabelle-jedit].## Table of Contents
1. [For End-Users](#for-end-users)
2. [For Developers](#for-developers)
3. [Changelog](#changelog)
4. [License](#license)
5. [References](#references)## For End-Users
You can get a fully integrated version of Naproche for Linux, macOS and Windows
that is bundled with [Isabelle][isabelle]: Download and run the application from
and open the file `$ISABELLE_NAPROCHE/Intro.thy` in
its `Documentation` panel.## For Developers
See [CONTRIBUTING.md](CONTRIBUTING.md) for a more detailed and beginner-friendly
version of the below instructions.### Isabelle/Naproche Prover IDE
#### Prerequisites
Ensure that `curl`, `gcc`, `git`, `make`, and `hg` (Mercurial) are installed:
* Linux: e.g. `sudo apt install curl gcc git make mercurial`
* macOS: e.g. `brew install mercurial` or download from https://www.mercurial-scm.org
* Windows: use Cygwin64 with packages `curl`, `gcc-core`, `git`, `make`, and `mercurial` (via Cygwin setup-x86_64.exe)
#### Repository management
Commands below assume the same current directory: repository clones
`isabelle_naproche` and `naproche` are put side-by-side.* Initial clone:
```shell
hg clone https://isabelle.sketis.net/repos/isabelle-release isabelle_naproche
git clone https://github.com/naproche/naproche.git naprocheisabelle_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:
```shell
git --git-dir="./naproche/.git" pull
isabelle_naproche/Admin/init -V ./naproche/Isabelle
```#### Development
* Isabelle executable: there is no need to have `isabelle_naproche/bin/isabelle`
in the PATH, but it is convenient to put it into a standard place once, e.g.:
```shell
isabelle_naproche/bin/isabelle install "$HOME/bin"
```* Build and test:
- Shutdown Isabelle/jEdit before building Isabelle/Naproche as follows:
```shell
isabelle naproche_build
```
- Run some tests as follows (make sure that your current directory is the root of the Naproche repository):
```shell
isabelle naproche_build && isabelle naproche_test -j2isabelle naproche_test -o naproche_server_debugging
```- Package the Isabelle/Naproche component as follows:
```shell
isabelle naproche_build && isabelle naproche_component -P
```The result is for the current repository version, and the underlying
HW + OS platform. The following reference platforms (x86_64) are
used for Isabelle2024:
- Ubuntu Linux 18.04 LTS
- macOS 11 Big Sur
- Windows 10/11* Isabelle Prover IDE
- Open ForTheL examples in Isabelle/jEdit, e.g.
```shell
isabelle jedit examples/cantor.ftl
```
- Open Isabelle development environment with ForTheL examples, e.g.
```shell
isabelle jedit -l Pure Isabelle/Test.thy
```* 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.1. Download and install the latest version of the E Theorem Prover from [The E Theorem Prover Website](https://wwwlehre.dhbw-stuttgart.de/~sschulz/E/Download.html). Installation instructions are provided in the `README` file. After following these, a working E executable should be located at `E/PROVER/eprover`.
2. To make the `eprover` executable available to Isabelle/Naproche, we will create the `e_naproche` Isabelle component. First, we prepare the directory structure of the component:
```shell
mkdir -p e_naproche/etc
mkdir e_naproche/$(isabelle_naproche/bin/isabelle getenv -b ISABELLE_PLATFORM64)
```We then copy the `eprover` exutable into the component:
```shell
cp eprover/PROVER/eprover e_naproche/$(isabelle_naproche/bin/isabelle getenv -b ISABELLE_PLATFORM64)/
```And create a document at `e_naproche/etc/settings` with the following content:
```plain
# -*- shell-script -*- :mode=shellscript:E_HOME="$COMPONENT/$ISABELLE_PLATFORM64"
```Finally, we add the `e_naproche` component to Isabelle.
```shell
isabelle_naproche/bin/isabelle components -u ./e_naproche
```
3. To ensure that Naproche does not fall back to the E Theorem Prover component bundled with Isabelle, we need to ensure that the `e_naproche` component is loaded before the `naproche` component. First, navigate to your Isabelle user home, which can be located using
```shell
isabelle_naproche/bin/isabelle getenv -b ISABELLE_HOME_USER
```
Then edit the document at `etc/components`. Move the path pointing to the `e_naproche` component above that pointing to the `naproche` component.
Finally, verify that the path returend by
```shell
isabelle getenv -b NAPROCHE_EPROVER
```
points to the `eprover` executable inside the `e_naproche` component.### Low-level command-line tool (without Isabelle)
#### Prerequisites
* Supported OS platforms: Linux, macOS, Windows (e.g. with Cygwin terminal)
* The Haskell Tool Stack: https://www.haskellstack.org
* Install the E Theorem Prover and
set the environment variable NAPROCHE_EPROVER to its executable
path.Note: the E prover executable bundled with Isabelle can be located
like this:
```shell
isabelle getenv -b NAPROCHE_EPROVER
```* Optional (for development): Haskell IDE within VSCode:
https://marketplace.visualstudio.com/items?itemName=haskell.haskell#### Build and test
```shell
cd .../naproche #repositorystack clean
stack build
stack test
```#### Manual checking of proof files
```shell
stack exec Naproche-SAD -- OPTIONS FILE
```It may be necessary to allow the E Prover more time by appending `-t SECONDS`
## Changelog
See [CHANGELOG.md](CHAMGELOG.md) for a changelog of Naproche.
## License
Naproche is licensed under the [GPL-3][gpl-3]. See [LICENSE.md](LICENSE.md) for
details.## References
Naproche is based on the [System for Automated Deduction (SAD)][sad] by
[Andrei Paskevich][andrei-paskevich].
You can find more resources in our [CONTRIBUTING.md](CONTRIBUTING.md).[isabelle]:
[sad]:
[andrei-paskevich]:
[isabelle-jedit]:
[gpl-3]: