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
Achim D. Brucker e58f0b33d4 Section 5.3. 2019-08-11 17:03:26 +01:00
.ci Remove old output directories. 2019-07-20 22:30:31 +01:00
examples Section 5.3. 2019-08-11 17:03:26 +01:00
src Moved \bibliographystyle{} to the top of the template to allow overriding it in preample.tex 2019-08-11 09:21:17 +01:00
.config Moved version-related configuration into a .config file. 2019-08-03 21:32:40 +01:00
.gitattributes Avoid line ending conversions for shell scripts, 2018-12-05 10:33:13 +00:00
.gitignore Ignore tmp-files. 2019-07-23 15:14:09 +01:00
CHANGELOG.md Initial commit. 2019-06-17 20:53:13 +01:00
CITATION Updated bibliographic information. 2019-01-09 10:31:51 +00:00
LICENSE Applied renaming: Paris-Sud to Paris-Saclay. 2019-07-28 12:01:58 +01:00
README.md Make header a link to the master repository. 2019-08-10 20:07:52 +01:00
ROOTS Large directory restructuring. 2019-07-20 21:12:40 +01:00
install Improved log messages. 2019-08-04 22:26:10 +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.

Pre-requisites

Isabelle/DOF has two major pre-requisites:

  • Isabelle: Isabelle/DOF requires Isabelle 2019. Please download the Isabelle 2019 distribution for your operating system from the Isabelle website.
  • LaTeX: Isabelle/DOF requires a modern pdfTeX-engine supporting the \expanded{}-primitive. This is, for example, included in the TeXLive 2019 (or later) distribution. Please follow the TeXLive installation instructions for installing TeXLive.

Installation

Quick Installation Guide

In most case, the DOF-plugin can be installed as follows:

foo@bar:~$ ./install

If a specific Isabelle version should be used (i.e., not the default one), the full path to the isabelle command needs to be passed as using the --isabelle command line argument of the install script:

foo@bar:~$ ./install --isabelle /usr/local/Isabelle2019/bin/isabelle

For further command line options of the installer, please use the built-in help:

foo@bar:~$ ./install --help

What The Installer Actually Does

The installer will

  • apply a patch to Isabelle that is necessary to use Isabelle/DOF. If this patch installations fails, you need to manually replace the file Isabelle2019/src/Pure/Thy/thy_output.ML in the Isabelle distribution with the file src/patches/thy_output.ML from the
    Isabelle/DOF distribution:

      cp patches/thy_output.ML `isabelle getenv -b ISABELLE_HOME`/src/Pure/Thy/
    
  • install required entries from the AFP. If this installations fails, you need to manually install the AFP for Isabelle 2019 as follows: Download the AFP for Isabelle 2019 and follow the instructions for installing the AFP as Isabelle component. If you have extracted the AFP archive into the directory to /home/myself/afp, you should run the following command to make the AFP session ROOTS available to Isabelle:

      echo "/home/myself/afp/thys" >> ~/.isabelle/Isabelle2019/ROOTS
    
  • registers Isabelle/DOF as Isabelle component

  • install the Isabelle/DOF-plugin into the Isabelle user directory (the exact location depends on the Isabelle version).

  • check that the AFP has been installed successfully.

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 (use -h to obtain a list of all installed setups):

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
       * core
       * mathex
       * scholarly_paper
    -t TEMPLATE   (default: scrartcl)
       Available document templates:
       * lncs
       * scrartcl
       * scrreprt
       * scrreprt-modern

  Prepare session root DIR (default: current directory).

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.

Team

Main contacts:

Contributors

  • Idir Ait-Sadoune
  • Paolo Crisafulli
  • Chantal Keller

License

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

SPDX-License-Identifier: BSD-2-Clause

Publications

Master Repository

The master git repository for this project is hosted https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF.