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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69e97a16d447b77ade184cd810bcc4bd4cd884b0e9cacdc2a9bb47e94ce4f831 |
|
MD5 | 38bc1540350638f069c1fd0a3f6e3040 |
|
BLAKE2b-256 | da30c9ff7944ec4a4b0093bf846359f3164bd4c570e0ea6a92ecbf278371d764 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e4d067a6e1f82eb87e3333e24e08876ac1964e2b4347e94bf9c81f12ba598ba |
|
MD5 | 131a26f153194062e59deb5aaec4810f |
|
BLAKE2b-256 | 96395b0548496681354f5aefe600621f693beb81be5c6d77136c5bbbe88648f7 |