2019-08-10 19:07:52 +00:00
|
|
|
# [Isabelle/DOF](https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF): Document Preparation Setup
|
2018-02-07 17:43:15 +00:00
|
|
|
|
2019-08-11 21:26:43 +00:00
|
|
|
Isabelle/DOF is a novel Document Ontology Framework on top of Isabelle.
|
2022-11-01 20:58:34 +00:00
|
|
|
Isabelle/DOF allows for both conventional typesetting and formal development.
|
|
|
|
The manual for [Isabelle/DOF 1.3.0/Isabelle2021-1 is available
|
2022-07-08 11:57:43 +00:00
|
|
|
online.](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.3.0_Isabelle2021-1.pdf)
|
2018-02-07 18:44:27 +00:00
|
|
|
|
2019-08-04 12:46:53 +00:00
|
|
|
## Pre-requisites
|
2019-01-05 22:32:17 +00:00
|
|
|
|
2022-06-24 15:58:07 +00:00
|
|
|
Isabelle/DOF has three major prerequisites:
|
2019-01-05 22:32:17 +00:00
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
* **Isabelle:** Isabelle/DOF requires [Isabelle
|
2022-12-01 10:55:51 +00:00
|
|
|
2022](https://isabelle.in.tum.de/website-Isabelle2022/). Please download the
|
2022-11-01 20:58:34 +00:00
|
|
|
Isabelle 2022 distribution for your operating system from the [Isabelle
|
2022-12-01 10:55:51 +00:00
|
|
|
website](https://isabelle.in.tum.de/website-Isabelle2022/).
|
2022-11-07 17:05:04 +00:00
|
|
|
* **AFP:** Isabelle/DOF requires several entries from the [Archive of Formal Proofs
|
2022-11-01 20:58:34 +00:00
|
|
|
(AFP)](https://www.isa-afp.org/). Please install the AFP following the
|
|
|
|
instructions given at <https://www.isa-afp.org/using.html>.
|
2022-06-24 15:58:07 +00:00
|
|
|
* **LaTeX:** Isabelle/DOF requires a modern LaTeX installation, i.e., at least
|
2022-11-01 20:58:34 +00:00
|
|
|
[TeX Live 2022](https://www.tug.org/texlive/) with all available updates
|
|
|
|
applied.
|
2021-03-15 10:24:31 +00:00
|
|
|
|
2019-08-04 12:46:53 +00:00
|
|
|
## Installation
|
2018-02-07 18:44:27 +00:00
|
|
|
|
2022-06-29 15:25:32 +00:00
|
|
|
Isabelle/DOF is provided as an Isabelle component. After installing the
|
|
|
|
prerequisites, change into the directory containing Isabelle/DOF (this should be
|
2022-07-02 21:21:07 +00:00
|
|
|
the directory containing this `README.md` file) and execute (if you executed
|
2022-11-01 20:58:34 +00:00
|
|
|
this command already during the installation of the prerequisites, you can skip
|
|
|
|
it now):
|
2019-08-04 12:46:53 +00:00
|
|
|
|
|
|
|
```console
|
2022-12-01 10:45:12 +00:00
|
|
|
foo@bar:~$ isabelle components -u .
|
2018-06-12 22:28:20 +00:00
|
|
|
```
|
2019-08-04 12:46:53 +00:00
|
|
|
|
2022-03-27 12:21:55 +00:00
|
|
|
The final step for the installation is:
|
2019-08-17 09:53:04 +00:00
|
|
|
|
2019-08-17 09:39:42 +00:00
|
|
|
```console
|
|
|
|
foo@bar:~$ isabelle build -D .
|
|
|
|
```
|
|
|
|
|
2019-08-17 09:53:04 +00:00
|
|
|
This will compile Isabelle/DOF and run the example suite.
|
2019-08-17 09:39:42 +00:00
|
|
|
|
2018-06-12 22:28:20 +00:00
|
|
|
## Usage
|
|
|
|
|
2019-01-06 18:43:23 +00:00
|
|
|
### Opening an Example
|
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
If you want to work with or extend one of the examples, e.g., you can open it
|
|
|
|
similar to any standard Isabelle theory:
|
2019-01-06 18:43:23 +00:00
|
|
|
|
|
|
|
```console
|
|
|
|
isabelle jedit -d . -l Isabelle_DOF examples/scholarly_paper/2018_cicm/IsaDofApplications.thy
|
|
|
|
```
|
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
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:
|
2019-01-06 18:43:23 +00:00
|
|
|
|
|
|
|
```console
|
2019-01-06 23:09:50 +00:00
|
|
|
isabelle jedit -d . -l HOL examples/scholarly_paper/2018_cicm/IsaDofApplications.thy
|
2019-01-06 18:43:23 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
While this gives you more flexibility, it might "clutter" your editing
|
2022-11-01 20:58:34 +00:00
|
|
|
experience, as a lot of internal theories are loaded into Isabelle's editor.
|
2019-01-06 18:43:23 +00:00
|
|
|
|
|
|
|
### Creating a New Project
|
|
|
|
|
2018-06-12 22:28:20 +00:00
|
|
|
The DOF-plugin provides an alternative to Isabelle's ``mkroot`` command.
|
|
|
|
Isabelle projects that use DOF need to be created using
|
2019-08-11 21:26:43 +00:00
|
|
|
|
|
|
|
```console
|
2022-06-25 16:34:08 +00:00
|
|
|
foo@bar:~$ isabelle dof_mkroot
|
2018-06-12 22:28:20 +00:00
|
|
|
```
|
2019-08-11 21:26:43 +00:00
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
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.
|
2018-06-12 22:28:20 +00:00
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
Using the ``-o`` option, different ontology setups can be selected and using the
|
|
|
|
``-t`` option, different LaTeX setups can be selected. For example,
|
2019-08-11 21:26:43 +00:00
|
|
|
|
|
|
|
```console
|
2022-06-24 15:58:07 +00:00
|
|
|
foo@bar:~$ isabelle dof_mkroot -o scholarly_paper -t scrartcl
|
2019-08-11 21:26:43 +00:00
|
|
|
```
|
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
creates a setup using the scholarly_paper ontology and the article class from
|
|
|
|
the KOMA-Script bundle.
|
2019-08-11 21:26:43 +00:00
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
The help (option ``-h``) show a list of all supported ontologies and document
|
|
|
|
templates:
|
2019-08-11 21:26:43 +00:00
|
|
|
|
|
|
|
```console
|
2022-06-24 15:58:07 +00:00
|
|
|
foo@bar:~$ isabelle dof_mkroot -h
|
|
|
|
Usage: isabelle dof_mkroot [OPTIONS] [DIRECTORY]
|
2018-06-12 22:28:20 +00:00
|
|
|
|
|
|
|
Options are:
|
2022-06-24 15:58:07 +00:00
|
|
|
-I init Mercurial repository and add generated files
|
|
|
|
-n NAME alternative session name (default: directory base name)
|
|
|
|
-o ONTOLOGY ontology (default: scholarly_paper)
|
|
|
|
-t TEMPLATE tempalte (default: scrartcl)
|
|
|
|
|
|
|
|
Prepare session root directory (default: current directory).
|
2018-06-12 22:28:20 +00:00
|
|
|
```
|
2019-01-06 18:43:23 +00:00
|
|
|
|
2019-08-18 13:05:00 +00:00
|
|
|
## Releases
|
|
|
|
|
2022-06-24 15:58:07 +00:00
|
|
|
For releases, signed archives including a PDF version of the Isabelle/DOF manual
|
2019-08-18 13:05:00 +00:00
|
|
|
are available:
|
|
|
|
|
2022-07-08 11:05:39 +00:00
|
|
|
* Isabelle/DOF 1.3.0/Isabelle2021-1
|
|
|
|
* [Isabelle_DOF-1.3.0_Isabelle2021-1.pdf](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.3.0_Isabelle2021-1.pdf)
|
|
|
|
* [Isabelle_DOF-1.3.0_Isabelle2021-1.tar.xz](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.3.0_Isabelle2021-1.tar.xz)
|
|
|
|
* [Isabelle_DOF-1.3.0_Isabelle2021-1.tar.xz.asc](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.3.0_Isabelle2021-1.tar.xz.asc)
|
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
### Older Releases
|
2022-07-08 11:05:39 +00:00
|
|
|
|
2022-03-25 22:24:25 +00:00
|
|
|
* Isabelle/DOF 1.2.0/Isabelle2021
|
|
|
|
* [Isabelle_DOF-1.2.0_Isabelle2021.pdf](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.2.0_Isabelle2021.pdf)
|
|
|
|
* [Isabelle_DOF-1.2.0_Isabelle2021.tar.xz](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.2.0_Isabelle2021.tar.xz)
|
|
|
|
* [Isabelle_DOF-1.2.0_Isabelle2021.tar.xz.asc](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.2.0_Isabelle2021.tar.xz.asc)
|
2021-03-20 23:56:46 +00:00
|
|
|
* Isabelle/DOF 1.1.0/Isabelle2021
|
|
|
|
* [Isabelle_DOF-1.1.0_Isabelle2021.pdf](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.1.0_Isabelle2021.pdf)
|
|
|
|
* [Isabelle_DOF-1.1.0_Isabelle2021.tar.xz](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.1.0_Isabelle2021.tar.xz)
|
|
|
|
* [Isabelle_DOF-1.1.0_Isabelle2021.tar.xz.asc](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.1.0_Isabelle2021.tar.xz.asc)
|
2021-03-20 22:19:57 +00:00
|
|
|
* Isabelle/DOF 1.1.0/Isabelle2020
|
|
|
|
* [Isabelle_DOF-1.1.0_Isabelle2020.pdf](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.1.0_Isabelle2020.pdf)
|
|
|
|
* [Isabelle_DOF-1.1.0_Isabelle2020.tar.xz](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.1.0_Isabelle2020.tar.xz)
|
|
|
|
* [Isabelle_DOF-1.1.0_Isabelle2020.tar.xz.asc](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.1.0_Isabelle2020.tar.xz.asc)
|
2019-08-18 13:05:00 +00:00
|
|
|
* Isabelle/DOF 1.0.0/Isabelle2019
|
|
|
|
* [Isabelle_DOF-1.0.0_Isabelle2019.pdf](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.pdf)
|
|
|
|
* [Isabelle_DOF-1.0.0_Isabelle2019.tar.xz](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.tar.xz)
|
|
|
|
* [Isabelle_DOF-1.0.0_Isabelle2019.tar.xz.asc](https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.tar.xz.asc)
|
|
|
|
|
2018-06-12 22:28:20 +00:00
|
|
|
## Team
|
|
|
|
|
|
|
|
Main contacts:
|
2019-08-04 21:06:30 +00:00
|
|
|
|
2018-06-12 22:28:20 +00:00
|
|
|
* [Achim D. Brucker](http://www.brucker.ch/)
|
|
|
|
* [Burkhart Wolff](https://www.lri.fr/~wolff/)
|
|
|
|
|
|
|
|
### Contributors
|
|
|
|
|
2019-08-04 21:06:30 +00:00
|
|
|
* Idir Ait-Sadoune
|
|
|
|
* Paolo Crisafulli
|
2018-06-12 22:28:20 +00:00
|
|
|
* Chantal Keller
|
2022-06-24 15:58:07 +00:00
|
|
|
* Nicolas Méric
|
2018-06-12 22:28:20 +00:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
This project is licensed under a 2-clause BSD license.
|
|
|
|
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
|
|
|
|
## Publications
|
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
* Achim D. Brucker, Idir Ait-Sadoune, Paolo Crisafulli, and Burkhart Wolff.
|
|
|
|
[Using The Isabelle Ontology Framework: Linking the Formal with the
|
|
|
|
Informal](https://www.brucker.ch/bibliography/download/2018/brucker.ea-isabelle-ontologies-2018.pdf).
|
|
|
|
In Conference on Intelligent Computer Mathematics (CICM). Lecture Notes in
|
|
|
|
Computer Science (11006), Springer-Verlag, 2018.
|
2019-08-18 20:39:43 +00:00
|
|
|
[doi:10.1007/978-3-319-96812-4_3](https://doi.org/10.1007/978-3-319-96812-4_3).
|
|
|
|
|
2019-08-04 21:06:30 +00:00
|
|
|
* Achim D. Brucker and Burkhart Wolff. [Isabelle/DOF: Design and
|
|
|
|
Implementation](https://www.brucker.ch/bibliography/download/2019/brucker.ea-isabelledof-2019.pdf).
|
2022-11-01 20:58:34 +00:00
|
|
|
In Software Engineering and Formal Methods (SEFM). Lecture Notes in Computer
|
|
|
|
Science (11724), Springer-Verlag, 2019.
|
2019-08-18 20:39:43 +00:00
|
|
|
[doi:10.1007/978-3-030-30446-1_15](https://doi.org/10.1007/978-3-030-30446-1_15).
|
2019-07-05 15:09:34 +00:00
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
* Achim D. Brucker, Burkhart Wolff. [Using Ontologies in Formal Developments
|
|
|
|
Targeting
|
|
|
|
Certification](https://www.brucker.ch/bibliography/download/2019/brucker.ea-ontologies-certification-2019.pdf).
|
|
|
|
In Integrated Formal Methods (IFM). Lecture Notes in Computer Science (11918).
|
|
|
|
Springer-Verlag 2019.
|
2019-12-06 13:25:00 +00:00
|
|
|
[doi:10.1007/978-3-030-34968-4_4](http://dx.doi.org/10.1007/978-3-030-34968-4_4)
|
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
* Sergio Bezzecchi, Paolo Crisafulli, Charlotte Pichot, and Burkhart Wolff.
|
|
|
|
[Making Agile Development Processes fit for V-style Certification
|
|
|
|
Procedures.](https://hal.archives-ouvertes.fr/hal-01702815/document). In ERTS
|
|
|
|
2018. <https://hal.archives-ouvertes.fr/hal-01702815>
|
2021-03-22 00:12:00 +00:00
|
|
|
|
2022-03-17 08:48:25 +00:00
|
|
|
## Upstream Repository
|
2019-06-17 09:32:51 +00:00
|
|
|
|
2022-11-01 20:58:34 +00:00
|
|
|
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>.
|