scala-isabelle

A Scala library for controlling/interacting with Isabelle

View on GitHub

scala-isabelle – a Scala library for controlling Isabelle/HOL

scala-isabelle is a Scala library to control an Isabelle process from a Scala application. It allows to interact with the Isabelle process, manipulate objects such as terms and theorems as if they were local Scala objects, and execute ML code in the Isabelle process. The library serves a similar purpose as the discontinued libisabelle. It can also be used from Java and other JVM languages.

Setup

For information on how to setup the library, see here.

Example

A full example how to use Isabelle to parse terms and then operate on them in Scala is given here.

Documentation

Most information is in the API documentation. For an introduction to the most important concepts, start with the API doc for the classes Isabelle, MLValue, and Term.

Projects using scala-isabelle

Acknowledgments

Development was supported by the Air Force Office of Scientific Research (AOARD Grant FA2386-17-1-4022), by the ERC consolidator grant CerQuS (819317), and by the PRG946 grant from the Estonian Research Council.