isabelle-client
is a TCP client for
Isabelle server. For more information
about the server see Chapter 4 of the Isabelle system
manual.
The best way to install this package is to use pip
:
pip install isabelle-client
Another option is to use Anaconda:
conda install -c conda-forge isabelle-client
One can also download and run the client together with Isabelle in a Docker contanier:
docker build -t isabelle-client https://github.com/inpefess/isabelle-client.git
docker run -d --rm -p 8888:8888 --name isabelle-client isabelle-client
And navigate to example page in your browser.
from isabelle_client import get_isabelle_client, start_isabelle_server
# start Isabelle server
server_info, _ = start_isabelle_server()
# create a client object
isabelle = get_isabelle_client(server_info)
# send a theory file from the current directory to the server
response = isabelle.use_theories(
theories=["Example"], master_dir=".", watchdog_timeout=0
)
# shut the server down
isabelle.shutdown()
For more details, follow the usage example from documentation or a notebook.
More documentation can be found here.
There are Python clients to other interactive theorem provers, for example:
Modules helping to inetract with Isabelle server from Python are parts of the Proving for Fun project.
There are also clients to Isabelle server in other programming languages, e.g. this one in Rust.
isabelle-client helped to build some cool LLM stuff (in reversed chronological order):
- StepProof: Step-by-step verification of natural language mathematical proofs (Hu et al.) with code
- Verification and Refinement of Natural Language Explanations through LLM-Symbolic Theorem Proving (Quan et al., EMNLP 2024) with code
If you’re writing a research paper, you can cite the Isabelle client using the following DOI. You can also cite Isabelle 2021 (and the earlier version of the client) with this DOI. There also is a somewhat more complete (but unpublished) pre-print.
Please follow the contribution guide while adhering to the code of conduct.