wenzelm@18537: \documentclass[12pt,a4paper,fleqn]{report} wenzelm@18537: \usepackage{latexsym,graphicx} wenzelm@18537: \usepackage[refpage]{nomencl} wenzelm@18537: \usepackage{../iman,../extra,../isar,../proof} wenzelm@26862: \usepackage[nohyphen,strings]{../underscore} wenzelm@26906: \usepackage{../isabelle,../isabellesym} wenzelm@18537: \usepackage{style} wenzelm@18537: \usepackage{../pdfsetup} wenzelm@18537: wenzelm@18537: wenzelm@18537: \hyphenation{Isabelle} wenzelm@18537: \hyphenation{Isar} wenzelm@18537: wenzelm@18537: \isadroptag{theory} wenzelm@18537: \title{\includegraphics[scale=0.5]{isabelle_isar} wenzelm@18537: \\[4ex] The Isabelle/Isar Implementation} wenzelm@28780: \author{\emph{Makarius Wenzel} \\[3ex] wenzelm@28780: With Contributions by wenzelm@28780: Florian Haftmann wenzelm@28780: and Larry Paulson wenzelm@28780: } wenzelm@18537: wenzelm@18537: \makeindex wenzelm@18537: wenzelm@18537: wenzelm@18537: \begin{document} wenzelm@18537: wenzelm@35031: \maketitle wenzelm@18537: wenzelm@18537: \begin{abstract} wenzelm@18537: We describe the key concepts underlying the Isabelle/Isar wenzelm@18537: implementation, including ML references for the most important wenzelm@20451: functions. The aim is to give some insight into the overall system wenzelm@20488: architecture, and provide clues on implementing applications within wenzelm@20488: this framework. wenzelm@18537: \end{abstract} wenzelm@18537: wenzelm@19189: \vspace*{2.5cm} wenzelm@19189: \begin{quote} wenzelm@35031: wenzelm@19189: {\small\em Isabelle was not designed; it evolved. Not everyone wenzelm@19189: likes this idea. Specification experts rightly abhor wenzelm@19189: trial-and-error programming. They suggest that no one should wenzelm@20024: write a program without first writing a complete formal wenzelm@19189: specification. But university departments are not software houses. wenzelm@19189: Programs like Isabelle are not products: when they have served wenzelm@19189: their purpose, they are discarded.} wenzelm@35031: wenzelm@19189: Lawrence C. Paulson, ``Isabelle: The Next 700 Theorem Provers'' wenzelm@19189: wenzelm@19189: \vspace*{1cm} wenzelm@35031: wenzelm@19189: {\small\em As I did 20 years ago, I still fervently believe that the wenzelm@19189: only way to make software secure, reliable, and fast is to make it wenzelm@20064: small. Fight features.} wenzelm@35031: wenzelm@19189: Andrew S. Tanenbaum wenzelm@19189: wenzelm@35031: \vspace*{1cm} wenzelm@35031: wenzelm@35031: {\small\em One thing that UNIX does not need is more features. It is wenzelm@35031: successful in part because it has a small number of good ideas wenzelm@35031: that work well together. Merely adding features does not make it wenzelm@35031: easier for users to do things --- it just makes the manual wenzelm@35031: thicker. The right solution in the right place is always more wenzelm@35031: effective than haphazard hacking.} wenzelm@35031: wenzelm@35031: Rob Pike and Brian W. Kernighan wenzelm@35031: wenzelm@19189: \end{quote} wenzelm@19189: wenzelm@19189: \thispagestyle{empty}\clearpage wenzelm@19189: wenzelm@20514: \pagenumbering{roman} wenzelm@20514: \tableofcontents wenzelm@20514: \listoffigures wenzelm@20514: \clearfirst wenzelm@18537: wenzelm@30081: \input{Thy/document/Prelim.tex} wenzelm@30081: \input{Thy/document/Logic.tex} wenzelm@30081: \input{Thy/document/Tactic.tex} wenzelm@30081: \input{Thy/document/Proof.tex} wenzelm@30124: \input{Thy/document/Syntax.tex} wenzelm@30081: \input{Thy/document/Isar.tex} wenzelm@30081: \input{Thy/document/Local_Theory.tex} wenzelm@30081: \input{Thy/document/Integration.tex} wenzelm@18537: wenzelm@18537: \appendix wenzelm@18537: \input{Thy/document/ML.tex} wenzelm@18537: wenzelm@18537: \begingroup wenzelm@18537: \tocentry{\bibname} wenzelm@30114: \bibliographystyle{abbrv} \small\raggedright\frenchspacing wenzelm@18537: \bibliography{../manual} wenzelm@18537: \endgroup wenzelm@18537: wenzelm@18537: \tocentry{\indexname} wenzelm@18537: \printindex wenzelm@18537: wenzelm@18537: \end{document} wenzelm@18537: wenzelm@18537: wenzelm@35031: %%% Local Variables: wenzelm@18537: %%% mode: latex wenzelm@18537: %%% TeX-master: t wenzelm@35031: %%% End: