\chapter{More Examples} \label{chap:more-examples} In addition to the examples already covered in this text, the \holn{} distribution comes with a variety of instructive examples in the \verb|examples| directory. There the following examples (among others) are to be found: \begin{description} \item [\tt autopilot.sml] This example is a \holn{} rendition (by Mark Staples) of a PVS example due to Ricky Butler of NASA. The example shows the use of the record-definition package, as well as illustrating some aspects of the automation available in \holn{}. \item [\tt bmark] In this directory, there is a standard HOL benchmark: the proof of correctness of a multiplier circuit, due to Mike Gordon. \item [\tt euclid.sml] This example is the same as that covered in Chapter~\ref{chap:euclid}: a proof of Euclid's theorem on the infinitude of the prime numbers, extracted and modified from a much larger development due to John Harrison. It illustrates the automation of \HOL{} on a classic proof. \item[\tt ind\_def] This directory contains some examples of an inductive definition package in action. Featured are an operational semantics for a small imperative programming language, a small process algebra, and combinatory logic with its type system. The files were originally developed by Tom Melham and Juanito Camilleri and are extensively commented. The last is the basis for Chapter~\ref{chap:combin}. Most of the proofs in these theories can now be done much more easily by using some of the recently developed proof tools, namely the simplifier and the first order prover. \item [\tt fol.sml] This file illustrates John Harrison's implementation of a model-elimination style first order prover. \item[\tt lambda] This directory develops theories of a ``de Bruijn'' style lambda calculus, and also a name-carrying version. (Both are untyped.) The development is a revision of the proofs underlying the paper {\it ``5 Axioms of Alpha Conversion'', Andy Gordon and Tom Melham, Proceedings of TPHOLs'96, Springer LNCS 1125}. \item[\tt parity] This sub-directory contains the files used in the parity example of Chapter~\ref{parity}. \item [\tt MLsyntax] This sub-directory contains an extended example of a facility for defining mutually recursive types, due to Elsa Gunter of Bell Labs. In the example, the type of abstract syntax for a small but not totally unrealistic subset of ML is defined, along with a simple mutually recursive function over the syntax. \item[\tt Thery.sml] A very short example due to Laurent Th\'ery, demonstrating a cute inductive proof. \item[\tt RSA] This directory develops some of the mathematics underlying the RSA cryptography scheme. The theories have been produced by Laurent Th\'ery of INRIA Sophia-Antipolis. \end{description} %%% Local Variables: %%% mode: latex %%% TeX-master: "tutorial" %%% End: