Isabelle/DOF is a novel Document Ontology Framework on top of Isabelle. Isabelle/DOF allows for both conventional typesetting as well as formal development.
This repository has been archived on 2024-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Achim D. Brucker ca6acf7a93 Moved installation check from build script (no longer needed) to LaTeX base files. 2019-01-05 23:23:20 +00:00
document-generator Moved installation check from build script (no longer needed) to LaTeX base files. 2019-01-05 23:23:20 +00:00
examples Made upqoute and beramono optional. 2018-12-19 16:05:27 +00:00
old Kleinigkeiten um MathExam. 2018-06-27 09:12:50 +02:00
ontologies Added discussed ontology "math_paper" and an example reffering to (some elements) of it. 2018-12-19 12:05:57 +01:00
patches comment inside meta_args problem solved. 2018-10-04 17:25:45 +02:00
test Worked on assert*. 2018-12-11 16:03:01 +01:00
.gitattributes Avoid line ending conversions for shell scripts, 2018-12-05 10:33:13 +00:00
.gitignore Ignore generated templates for LaTeX styles. 2018-12-18 22:08:41 +00:00
Assert.thy Worked on assert*. 2018-12-11 16:03:01 +01:00
AssertLong.thy Kind of current status. 2018-02-07 19:44:27 +01:00
CITATION Initial commit. 2018-06-11 21:07:26 +01:00
Isa_COL.thy Worked on assert*. 2018-12-11 16:03:01 +01:00
Isa_DOF.thy Completion and a little debugging on assert* 2018-12-18 17:09:24 +01:00
LICENSE Moved license information to top-level directory. 2018-06-12 21:49:08 +01:00
README.md Updated README.md documenting the preliminaries. 2019-01-05 22:32:17 +00:00
ROOT kleinkram 2018-11-27 11:13:49 +01:00
ROOTS Removed local AFP entries. 2019-01-05 21:01:52 +00:00
RegExp.thy - Improved automata-management 2018-11-05 21:42:36 +01:00
RegExpChecker.sml New Config With AFP components and a thin interface for monitor-checking. 2018-11-04 18:56:59 +01:00
RegExpInterface.thy - New checks for reject sets 2018-11-20 10:11:11 +01:00
install Added checks for AFP entries and Isabelle/DOF patch. 2019-01-05 21:44:51 +00: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.

Prerequisites

Isabelle 2017

Isabelle/DOF requires Isabelle 2017. Please download the Isabelle 2017 distribution for your operating system from the Isabelle website.

After unpacking the Isabelle distribution, replace the file Isabelle2017/src/Pure/Thy/thy_output.ML in the Isabelle distribution with the file patches/thy_output.ML from the Isabelle/DOF distribution:

cp patches/thy_output.ML `isabelle getenv -b ISABELLE_HOME`/src/Pure/Thy/

AFP Entries

Moreover, Isabelle/DOF requires the two entries from the Archive of Formal Proofs. Please download the AFP for Isabelle 2017 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/Isabelle2018/ROOTS

Installation

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 argument to the install script:

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

The DOF-plugin will be installed in the Isabelle user directory (the exact location depends on the Isabelle version).

Usage

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

foo@bar:~$ isabelle DOF_mkroot -d 

The DOF_mkroot 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 DOF_mkroot -h

Usage: isabelle DOF_mkroot [OPTIONS] [DIR]

  Options are:
    -h           print this help text and exit
    -d           enable document preparation
    -n NAME      alternative session name (default: DIR base name)
    -o ONTOLOGY  (default: core)
       Available ontologies:
       * cenelec_50126
       * core
       * mathex
       * scholarly_paper
    -t TEMPLATE   (default: DEFAULT_TEMPLATE)
       Available document templates:
       * lncs
       * scrreprt

  Prepare session root DIR (default: current directory).

For example,

foo@bar:~$ isabelle DOF_mkroot -d -o scholarly_paper -t lncs

creates a setup using the scholarly_paper ontology and Springer's LNCS LaTeX class as document class. Note that the generated setup does not include the actual llncs.cls file. This is due to license restrictions. You need to obtain the file from Springer's website and either copy it in you texmf directory or the root folder. In the latter case, you also need to add it in the ROOT file as dependency.

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

  • Achim D. Brucker, Idir Ait-Sadoune, Paolo Crisafulli, and Burkhart Wolff. Using The Isabelle Ontology Framework: Linking the Formal with the Informal. In Conference on Intelligent Computer Mathematics (CICM). Lecture Notes in Computer Science, Springer-Verlag, 2018.