Skip to main content

Isabelle REPL client

Project description

Isabelle REPL

Unofficial support for Isabelle's Read-Eval-Print-Loop.

  • Python Client, easy for Machine Learning.
  • Full support for all Isabelle commands
  • Tracing proof state and output panel for each step of evaluation.
    • Plugin: inserting Isabelle/ML code to collect any data you want directly from Isabelle's internal representations (example).
  • Socket based remote communication
  • Concurrency

Installation

Ensuring <ISABELLE-BASE-DIRECTORY>/bin is in your $PATH environment

	isabelle components -u <THE-BASE-DIRECTORY-OF-OUR-PROGRAM>
pip install IsaREPL

Start up the REPL server

# merely an example:
./repl_server.sh 127.0.0.1:6666 HOL ./tmp

Run ./repl_server.sh to see the full explanation of the arguments and options.

Example Clients

Every interface of our client is will documented (it is highly recommended to read our source). Some examples are given in the example folder.

# Run an example
./examples/example_eval.py 127.0.0.1:6666

Notes

Documents

All documents are given as docstrings attaching to Python client interfaces, see the source.

Concurrency

This REPL supports concurrent evaluation of multiple files. However, to ensure proper error tracking and result tracing, it disables Isabelle's concurrency between commands within a single theory file. While Isabelle typically executes by commands asynchronously (continuing to the next command before completion), this REPL enforces synchronous evaluation. Each command must complete before the next begins, allowing for accurate capture and reporting of any failures.

Sledgehammer (via our auto_sledgehamemr wrapper, see example) is still concurrent.

Communication Protocol

It is possible to implement a client in other languages. However, the document for the communication protocol is not provided and I refer you to read our source code, as it should be simple enough.

Contribution

Feel free to open any GitHub issue if you have any feature requests.

I am not a professional python developer, so contribution is highly welcome to enrich the client's features.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

isarepl-0.3.0.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

IsaREPL-0.3.0-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file isarepl-0.3.0.tar.gz.

File metadata

  • Download URL: isarepl-0.3.0.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for isarepl-0.3.0.tar.gz
Algorithm Hash digest
SHA256 69e97a16d447b77ade184cd810bcc4bd4cd884b0e9cacdc2a9bb47e94ce4f831
MD5 38bc1540350638f069c1fd0a3f6e3040
BLAKE2b-256 da30c9ff7944ec4a4b0093bf846359f3164bd4c570e0ea6a92ecbf278371d764

See more details on using hashes here.

File details

Details for the file IsaREPL-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: IsaREPL-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for IsaREPL-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e4d067a6e1f82eb87e3333e24e08876ac1964e2b4347e94bf9c81f12ba598ba
MD5 131a26f153194062e59deb5aaec4810f
BLAKE2b-256 96395b0548496681354f5aefe600621f693beb81be5c6d77136c5bbbe88648f7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page