Skip to main content

A client to Isabelle proof assistant server

Project description

BinderPyPI versionAnaconda versionCircleCIDocumentation Statuscodecov

Python client for Isabelle server

isabelle-client is a TCP client for Isabelle server. For more information about the server see part 4 of the Isabelle system manual.

How to Install

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 -it --rm -p 8888:8888 isabelle-client jupyter-lab --ip=0.0.0.0 --port=8888

How to use

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, run the script, or use isabelle-client from a notebook, e.g. with Binder (Binder might fail with ‘Failed to create temporary user for …’ error which is well known and related neither to isabelle-client nor to the provided Dockerfile. If that happens, try to run Docker as described in the section above).

More documentation

More documentation can be found here.

Similar Packages

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.

How to cite

If you’re writing a research paper, you can cite Isabelle client using the following DOI. You can also cite Isabelle 2021 (and the earlier version of the client) with this DOI.

How to Contribute

Pull requests are welcome. To start:

git clone https://github.com/inpefess/isabelle-client
cd isabelle-client
# activate python virtual environment with Python 3.7+
pip install -U pip
pip install -U setuptools wheel poetry
poetry install
# recommended but not necessary
pre-commit install

To check the code quality before creating a pull request, one might run the script local-build.sh. It locally does nearly the same as the CI pipeline after the PR is created.

Reporting issues or problems with the software

Questions and bug reports are welcome on the tracker.

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

isabelle_client-0.3.10.tar.gz (16.5 kB view hashes)

Uploaded source

Built Distribution

isabelle_client-0.3.10-py3-none-any.whl (17.7 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page