Skip to content

xiyuzhai-husky-lang/naproche

 
 

Repository files navigation

Naproche

Proof Checking of Natural Mathematical Documents, with optional support for Isabelle Prover IDE (Isabelle/PIDE – Isabelle/jEdit).

Table of Contents

  1. For End-Users
  2. For Developers
  3. Changelog
  4. License
  5. References

For End-Users

You can get a fully integrated version of Naproche for Linux, macOS and Windows that is bundled with Isabelle: Download and run the application from https://isabelle.in.tum.de and open the file $ISABELLE_NAPROCHE/Intro.thy in its Documentation panel.

For Developers

See 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:

    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

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.:

    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 -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.
      isabelle jedit examples/cantor.ftl
    • Open Isabelle development environment with ForTheL examples, e.g.
      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. 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:

      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:

      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:

      # -*- shell-script -*- :mode=shellscript:
      
      E_HOME="$COMPONENT/$ISABELLE_PLATFORM64"
      

      Finally, we add the e_naproche component to Isabelle.

      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

      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

      isabelle getenv -b NAPROCHE_EPROVER

      points to the eprover executable inside the e_naproche component.

Low-level command-line tool (without Isabelle)

Prerequisites

Build and test

cd .../naproche  #repository

stack clean

stack build

stack test

Manual checking of proof files

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 for a changelog of Naproche.

License

Naproche is licensed under the GPL-3. See LICENSE.md for details.

References

Naproche is based on the System for Automated Deduction (SAD) by Andrei Paskevich. You can find more resources in our CONTRIBUTING.md.

About

Write formal proofs in natural language and LaTeX.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 90.2%
  • Isabelle 3.5%
  • Standard ML 2.8%
  • Scala 2.5%
  • TeX 0.7%
  • Shell 0.2%
  • FreeMarker 0.1%