<html><head><!-- $Id$ --><title>Isabelle</title></head><body><h1>Isabelle </h1> <a href="http://www.in.tum.de/~isabelle/logo/"><imgsrc="isabelle.gif" width=100 align=right alt="[Isabelle logo]"></a><p><strong>Isabelle</strong> is a popular generic theorem provingenvironment developed at Cambridge University (<ahref="http://www.cl.cam.ac.uk/users/lcp/">Larry Paulson</a>) and TUMunich (<a href="http://www.in.tum.de/~nipkow/">Tobias Nipkow</a>).The latest version is <strong>Isabelle98-1</strong>, it is availablefrom several <a href="dist/">mirror sites</a>.<p>Isabelle can be viewed from two main perspectives. On the one hand itmay serve as a generic framework for rapid prototyping of deductivesystems. On the other hand, major object logics like<strong>Isabelle/HOL</strong> provide a theorem proving environmentready to use for sizable applications.<h2>Object logics</h2>The Isabelle distribution includes a large body of object logics andother examples (see the <ahref="http://www.in.tum.de/~isabelle/library/">Isabelle theorylibrary</a>).<dl><dt><ahref="http://www.in.tum.de/~isabelle/library/HOL/"><strong>Isabelle/HOL</strong></a><dd>is a version of classical higher-order logic, similar to Gordon's HOL(it is related to Church's Simple Theory of Types).<dt><ahref="http://www.in.tum.de/~isabelle/library/HOLCF/"><strong>Isabelle/HOLCF</strong></a><dd>adds a considerably amount of Scott's domain theory to HOL.<dt><ahref="http://www.in.tum.de/~isabelle/library/FOL/"><strong>Isabelle/FOL</strong></a><dd>provides basic classical and intuitionistic first-order logic(polymorphic).<dt><ahref="http://www.in.tum.de/~isabelle/library/ZF/"><strong>Isabelle/ZF</strong></a><dd>offers a formulation of Zermelo-Fraenkel set theory on top of FOL.</dl><p>Isabelle/HOL is currently the best developed object logic, includingan extensive library of (concrete) mathematics, and various packagesfor advanced definitional concepts (like (co-)inductive sets andtypes, well-founded recursion etc.). The distribution also includessome large applications, for example correctness proofs ofcryptographic protocols (<ahref="http://www.in.tum.de/~isabelle/library/HOL/Auth/">HOL/Auth</a>).<p>Isabelle/ZF provides another starting point for applications, with aslightly less developed library, though. Its definitional packagesare similar to those of Isabelle/HOL. Untyped ZF provides moreadvanced constructions for sets than simply-typed HOL.<p>There are a few minor object logics that may serve as furtherexamples: <ahref="http://www.in.tum.de/~isabelle/library/CTT/">CTT</a> is anextensional version of Martin-Löf's Type Theory, <ahref="http://www.in.tum.de/~isabelle/library/Cube/">Cube</a> isBarendregt's Lambda Cube. There are also some sequent calculusexamples under <ahref="http://www.in.tum.de/~isabelle/library/Sequents/">Sequents</a>,including modal and linear logics. Again see the <ahref="http://www.in.tum.de/~isabelle/library/">Isabelle theorylibrary</a> for other examples.<h2>Defining Logics</h2>Logics are not hard-wired into Isabelle, but formulated withinIsabelle's meta logic: <strong>Isabelle/Pure</strong>. There arequite a lot of syntactic and deductive tools available in genericIsabelle. Thus defining new logics or extending existing onesbasically works as follows:<ol><li> declare concrete syntax (via mixfix grammar and syntax macros),<li> declare abstract syntax (as higher-order constants),<li> declare inference rules (as meta-logical propositions),<li> instantiate generic proof tools (simplifier, classical tableauprover etc.),<li> manually code special proof procedures (via tacticals orhand-written ML).</ol>The first three steps above are fully declarative and involve no MLprogramming at all. Thus one already gets a decent deductiveenvironment based on primitive inferences (by employing the built-inmechanisms of Isabelle/Pure, in particular higher-order unificationand resolution).For sizable applications some degree of automated reasoning isessential. Instantiating existing tools like the classical tableauprover involves only minimal ML-based setup. One may also writearbitrary proof procedures or even theory extension packages in ML,without breaching system soundness (Isabelle follows the well-known<em>LCF system approach</em> to achieve a secure system).<h2>Further information</h2><a href="http://www.cl.cam.ac.uk/Research/HVG/cambridge.html"><imgsrc="cambridge.gif" width=144 border=0 align=rightalt="[Cambridge]"></a> <ahref="http://www.in.tum.de/~isabelle/munich.html"><imgsrc="munich.gif" width=47 border=0 align=right alt="[Munich]"></a> Thelocal Isabelle pages at <ahref="http://www.cl.cam.ac.uk/Research/HVG/cambridge.html">Cambridge</a>and <a href="http://www.in.tum.de/~isabelle/munich.html">Munich</a>provide further information on Isabelle and related projects.</body></html>