Skip to main content

A client to Isabelle proof assistant server

Project description

BinderPyPI versionAnaconda versionCircleCIDocumentation StatuscodecovDOI

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 Software

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.

How to cite

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.

How to Contribute

Please follow the contribution guide while adhering to the code of conduct.

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.5.1.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

isabelle_client-0.5.1-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file isabelle_client-0.5.1.tar.gz.

File metadata

  • Download URL: isabelle_client-0.5.1.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.8.0-48-generic

File hashes

Hashes for isabelle_client-0.5.1.tar.gz
Algorithm Hash digest
SHA256 37aee69faed98b690ad7d94e6156af9443fbd39a0aa388d4151abf13d23b3c3c
MD5 2757a8d65189fb71d4400d943990bdbf
BLAKE2b-256 79fc4f60ba09ffe3f1a92299741e2f06bbe7e3f1458c3ab41531db9c6e367703

See more details on using hashes here.

File details

Details for the file isabelle_client-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: isabelle_client-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.8.0-48-generic

File hashes

Hashes for isabelle_client-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 45838ef3b775291bc759dc8bf618ad149320c135554f1e61f0e41e1c5d13549a
MD5 b8803ae4540f969b5b18e3b1f528f577
BLAKE2b-256 dae74189536c1119d617e4d2f700ef08809520d73309291f705f96a481b8ce21

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