HOL-Z
Version 2.1.1

Welcome to the HOL-Z home page!


Contents of this page:


What is HOL-Z 2.1.1?

HOL-Z is a proof environment for Z and HOL specifications based on ZeTa on the one hand and the generic theorem prover Isabelle (Version 98-0) on the other. ZeTa is essentially used as a type-checker for literate specifications in Z, that can be integrated into XEMACS as a combined editing and type-checking frontend. ZeTa has been extended by a plugin, that converts Z sections into a new format (*.holz) that can be loaded alternatively to Isabelles standard theory files (*.thy-files). Thus, theory contexts can be created in which theorem proving for specifications of realistic size can be realized.

On the Isabelle side, Z has been represented in a structure preserving embedding of Z into the higher-order logic (HOL) instance of Isabelle. Technically speaking, HOL-Z is a shallow embedding. Together with its ability to preserve the structure of large specifications, this has the advantage that inferences in HOL-Z were based on derived rules that were controlled by tactical programs. Thus, HOL-Z can be extended in a logically consistent and safe way. However, HOL-Z cannot be used for meta-theoretic reasoning over Z. HOL-Z essentially consists of three parts:

The LaTeX setup contains an own LaTeX-style file holz.sty which provides mainly a new command zrefines for refinement. This environment generates automatically refinement conditions for further processing with ZeTa and proof obligations for Isabelle/HOL-Z. For further details, please see the holz-manual which can after a succesfull installation of HOL-Z 2.1.1 can be found in the directory lib/texmf/doc/holz.

The ZeTa setup uses the ZeTa environment to load LaTex-based Z-specifications, type check them and with the help of a new adaptor, export them into files which can be loaded by Isabelle. You only have one specification document with text and formal notation which can be nicely type set. For detailed documentation on the HOL-Z-adaptor for ZeTa and its interaction with Isabelle, please have a look at its documentation.

The Z embedding into Isabelle/HOL consists of the following parts:

The essential part of the embedding is its representation in the set theory of higher-order logic. The semantic representation conforms to the Z Draft ISO Standard, because the semantics of Z defines a typed set theory while using the untyped set theory ZF as meta-language. The representation in set theory can be found in the Isabelle theory ZMathTool.

The syntactic front-end --- based on previous LaTeX styles that influenced the standard --- is inherited from ZeTa and conforms to a large degree to the standard (see The Z in ZeTa). The syntactic representation of the e-mail format aims to conform to the Z Draft ISO Standard, but achieves this goal to a far lesser extent. This is mainly for the following reasons:


Documentation

With this package, we provide the following documentation:

Current Release

HOL-Z 2.1.1 is Free Software in the sense of the GPL. The current release (dated: 2004-01-30) has version number 2.1.1.

The release has a number of quite substantial limitions. These are in particular:

Installation

After unpacking the HOL-Z sources (version 2.1.1) you find a file INSTALL. It contains the details about the installation.


Release History and Contributors

HOL-Z Version 1.0 (and variations thereof) have been developped by Kolyang, Thomas Santen and Burkhart Wolff; HOL-Z 1.0 was developped jointly at the BISS at the University Bremen and the GMD/First,Berlin. Steffen Helke, Thomas Neustupny and Carsten Sühl of the GMD/First made substantial contributions. Boris Witz of the University Oldenburg made a larger Case Study (a protocol specification) on the basis of HOL-Z 1.0 that lead to substantial improvements. The major release 2.0 was develped by Achim D. Brucker, Frank, Rittinger, and Burkhart Wolff. The Authors of HOL-Z Version 2.1.1 are Achim D. Brucker, Harald Hiss and Burkhart Wolff.

Following the general conventions of Free Software, all authors can be found in the AUTHORS file of the distribution.


Contact Address