/libisabelle

A Scala library which talks to Isabelle

Primary LanguageScalaApache License 2.0Apache-2.0

libisabelle

A Scala library which talks to Isabelle. It currently works with most recent Isabelle versions (there are two tiers of support). For more information and documentation about the project, visit its website.

Service Status
Travis (Linux/Mac CI) Build Status
AppVeyor (Windows CI) Build status
Scaladex Latest release
Scaladoc (release) Scaladoc
Zenodo (DOI) DOI
Gitter (Chat) Gitter

Including libisabelle into your project

libisabelle is cross-built for Scala 2.11.x and 2.12.x. Drop the following lines into your build.sbt:

libraryDependencies ++= Seq(
  "info.hupel" %% "libisabelle" % version,
  "info.hupel" %% "libisabelle-setup" % version
)

With this configuration, the automatic Isabelle setup will fetch additional JAR dependencies from Maven Central or Sonatype, depending on the selected Isabelle version. If you don't want this, additionally include the following dependency:

  "info.hupel" %% "pide-package" % version

This adds PIDE implementations for all supported Isabelle versions to your classpath.

Support tiers

There is a "full" and a "generic" tier. Isabelle versions that are supported generically are only supported on Linux and macOS and do not offer full features, i.e. starting a system. It only requires a bin/isabelle executable to be present.

Usually, more versions get added to the full tier. Sometimes, breaking changes in Isabelle require that full support needs to be dropped.

libisabelle version full support versions
0.9.2 – 0.9.3 2016, 2016-1, 2017
1.0.0 (upcoming) 2017, 2018 (upcoming)

Using the plugin

There is an sbt plugin for working with Isabelle sources available. Refer to its README for more information. You should use the plugin if your build contains Isabelle source files.

Command line interface

libisabelle features a CLI called isabellectl. Currently, it only allows some basic features like downloading, building and launching Isabelle. You can download a CLI executable from GitHub.

Downloading & checking your installation

isabellectl check

Launching Isabelle/jEdit

isabellectl -s HOL-Probability jedit

Using Isabelle tools

isabellectl exec getenv ISABELLE_HOME

Participation

This project supports the Typelevel code of conduct and wants all of its channels (at the moment: GitHub and Gitter) to be welcoming environments for everyone.