Isabelle/DOF is a novel Document Ontology Framework on top of Isabelle. Isabelle/DOF allows for both conventional typesetting as well as formal development.
Go to file
Nicolas Méric 3d02461aa2 Parametric invariant test 2022-06-01 07:49:59 +02:00
.woodpecker Added email notification for failed builds. 2022-03-31 06:39:01 +01:00
etc Defined basic set of options. 2022-04-03 22:45:47 +01:00
examples Parametric invariant test 2022-06-01 07:49:59 +02:00
src Parametric invariant test 2022-06-01 07:49:59 +02:00
.gitignore Ignore Isabelle/JEdit tmp files. 2022-03-26 19:56:23 +00:00
CHANGELOG.md Make use of install script optional in favor of registration as Isabelle component. Style files, templates, and scripts are no longer installed into ISABELLE_USER_HOME. 2022-03-27 13:21:55 +01:00
CITATION Fixed file attributes. 2022-04-18 09:44:44 +01:00
LICENSE Fixed file attributes. 2022-04-18 09:44:44 +01:00
README.md Fixed file attributes. 2022-04-18 09:44:44 +01:00
ROOTS Fixed file attributes. 2022-04-18 09:44:44 +01:00
install-afp Make use of install script optional in favor of registration as Isabelle component. Style files, templates, and scripts are no longer installed into ISABELLE_USER_HOME. 2022-03-27 13:21:55 +01:00

README.md

Isabelle/DOF: Document Preparation Setup

Isabelle/DOF is a novel Document Ontology Framework on top of Isabelle. Isabelle/DOF allows for both conventional typesetting as well as formal development. The manual for Isabelle/DOF 1.2.0/Isabelle2021 is available online.

Pre-requisites

Isabelle/DOF has three major pre-requisites:

  • Isabelle: Isabelle/DOF requires Isabelle 2021-1. Please download the Isabelle 2021-1 distribution for your operating system from the Isabelle website.
  • AFP: Isabelle/DOF requires two entries from the Archive of Formal Proofs (AFP). Please install the AFP following the instructions given at https://www.isa-afp.org/using.html. For your convenience, we also provide a script that only installs the two entries required by Isabelle/DOF into the local Isabelle/DOF directory. You can use this script as follows:
    foo@bar:~$ isabelle env ./install-afp
    
  • LaTeX: Isabelle/DOF requires a modern LaTeX installation, i.e., at least TeX Live 2022 with all available updates applied.

Installation

Isabelle/DOF is provided as a Isabelle component. After installing the pre-requisites the Isabelle/Archive needs to be unpacked and registered. Change into the directory you unpacked Isabelle/DOF (this should be the directory containing this README.md file) and execute

foo@bar:~$ isabelle components -u `pwd`

The final step for the installation is:

foo@bar:~$ isabelle build -D .

This will compile Isabelle/DOF and run the example suite.

Usage

Opening an Example

If you want to work with or extend one of the examples, e.g., you can open it similar to any standard Isabelle theory:

isabelle jedit -d . -l Isabelle_DOF examples/scholarly_paper/2018_cicm/IsaDofApplications.thy

This will open an example of a scientific paper using the pre-compiled session Isabelle_DOF, i.e., you will not be able to edit the ontology definitions. If you want to edit the ontology definition, just open the theory file with the default HOL session:

isabelle jedit -d . -l HOL examples/scholarly_paper/2018_cicm/IsaDofApplications.thy

While this gives you more flexibility, it might "clutter" your editing experience, as a lot of internal theories are loaded into Isabelle's editor.

Creating a New Project

The DOF-plugin provides an alternative to Isabelle's mkroot command. Isabelle projects that use DOF need to be created using

foo@bar:~$ isabelle mkroot_DOF

The mkroot_DOF command takes the same parameter as the standard mkroot command of Isabelle. Thereafter, the normal Isabelle command for building documents can be used.

Using the -o option, different ontology setups can be selected and using the -t option, different LaTeX setups can be selected. For example,

foo@bar:~$ isabelle mkroot_DOF -o scholarly_paper -t scrartcl

creates a setup using the scholarly_paper ontology and the article class from the KOMA-Script bundle.

The help (option -h) show a list of all supported ontologies and document templates:

foo@bar:~$ isabelle mkroot_DOF -h

Usage: isabelle mkroot_DOF [OPTIONS] [DIR]

  Options are:
    -h           print this help text and exit
    -n NAME      alternative session name (default: DIR base name)
    -o ONTOLOGY  (default: scholarly_paper)
       Available ontologies:
       * cenelec_50128
       * mathex
       * scholarly_paper
    -t TEMPLATE   (default: scrartcl)
       Available document templates:
       * lncs
       * scrartcl
       * scrreprt
       * scrreprt-modern

  Prepare session root DIR (default: current directory).

Releases

For releases, signed archives including a PDF version of the Isabelle/DOF manual are are available:

Team

Main contacts:

Contributors

  • Idir Ait-Sadoune
  • Paolo Crisafulli
  • Chantal Keller
  • Nicolas Méric

License

This project is licensed under a 2-clause BSD license.

SPDX-License-Identifier: BSD-2-Clause

Publications

Upstream Repository

The upstream git repository, i.e., the single source of truth, for this project is hosted at https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF.