wenzelm@7046: wenzelm@7046: %% $Id$ wenzelm@7046: wenzelm@7134: \documentclass[12pt,fleqn]{report} wenzelm@7134: \usepackage{graphicx,a4,../iman,../extra,../proof,../rail,../railsetup,../isar,../pdfsetup} wenzelm@7046: wenzelm@7046: \title{\includegraphics[scale=0.5]{isabelle_isar} \\[4ex] The Isabelle/Isar Reference Manual} wenzelm@7050: \author{\emph{Markus Wenzel} \\ TU M\"unchen} wenzelm@7046: wenzelm@7050: \makeindex wenzelm@7050: wenzelm@7167: \railterm{percent,ppercent,underscore,lbrace,rbrace,llbrace,rrbrace} wenzelm@7167: \railterm{ident,longident,symident,var,textvar,typefree,typevar,nat,string,verbatim,keyword} wenzelm@7134: wenzelm@7134: \railalias{name}{\railqtoken{name}} wenzelm@7134: \railalias{nameref}{\railqtoken{nameref}} wenzelm@7134: \railalias{text}{\railqtoken{text}} wenzelm@7134: \railalias{type}{\railqtoken{type}} wenzelm@7134: \railalias{term}{\railqtoken{term}} wenzelm@7134: \railalias{prop}{\railqtoken{prop}} wenzelm@7134: \railalias{atom}{\railqtoken{atom}} wenzelm@7134: wenzelm@7046: wenzelm@7046: \setcounter{secnumdepth}{2} \setcounter{tocdepth}{2} wenzelm@7046: wenzelm@7046: \pagestyle{headings} wenzelm@7046: \sloppy wenzelm@7046: \binperiod %%%treat . like a binary operator wenzelm@7046: wenzelm@7134: \renewcommand{\phi}{\varphi} wenzelm@7046: wenzelm@7046: wenzelm@7046: \begin{document} wenzelm@7046: wenzelm@7046: \underscoreoff wenzelm@7046: wenzelm@7046: \maketitle wenzelm@7046: wenzelm@7046: \begin{abstract} wenzelm@7167: \emph{Intelligible semi-automated reasoning} (\emph{Isar}) is a generic wenzelm@7167: approach to readable formal proof documents. It sets out to bridge the wenzelm@7167: semantic gap between any internal notions of proof based on primitive wenzelm@7167: inferences and tactics, and an appropriate level of abstraction for wenzelm@7167: user-level work. The Isar formal proof language has been designed to wenzelm@7167: satisfy quite contradictory requirements, being both ``declarative'' and wenzelm@7167: immediately ``executable'', by virtue of the \emph{Isar/VM} interpreter. wenzelm@7167: wenzelm@7167: The current version of Isabelle offers Isar as an alternative proof language wenzelm@7167: interface layer, beyond traditional tactic scripts. The Isabelle/Isar wenzelm@7167: system provides an interpreter for the Isar formal proof document language. wenzelm@7167: Isabelle/Isar input may consist either of \emph{proper document wenzelm@7167: constructors}, or \emph{improper auxiliary commands} (for diagnostics, wenzelm@7167: exploration etc.). Proof texts consisting of proper document constructors wenzelm@7167: only admit a purely static reading, thus being intelligible later without wenzelm@7167: requiring dynamic replay that is so typical for traditional proof scripts. wenzelm@7167: Any of the Isabelle/Isar commands may be executed in single-steps, so wenzelm@7167: basically the interpreter has a proof text debugger already built-in. wenzelm@7167: wenzelm@7167: Employing the \emph{ProofGeneral/isar} instantiation of the generic Emacs wenzelm@7167: interface for interactive proof assistants of LFCS Edinburgh, we arrive at a wenzelm@7167: reasonable environment for \emph{live document editing}. Thus proof texts wenzelm@7167: may be developed incrementally by issuing proper document constructors, wenzelm@7167: including forward and backward tracing of partial documents; intermediate wenzelm@7167: states may be inspected by diagnostic commands. wenzelm@7167: wenzelm@7167: The Isar subsystem of Isabelle is tightly integrated into the Isabelle/Pure wenzelm@7167: meta-logic implementation. Theories, theorems, proof procedures etc.\ may wenzelm@7167: be used interchangeably between Isabelle-classic proof scripts and wenzelm@7167: Isabelle/Isar documents. Isar is as generic as Isabelle, able to support a wenzelm@7167: wide range of object-logics. The current end-user setup is mainly for wenzelm@7167: Isabelle/HOL. wenzelm@7046: \end{abstract} wenzelm@7046: wenzelm@7046: \pagenumbering{roman} \tableofcontents \clearfirst wenzelm@7046: wenzelm@7046: %FIXME wenzelm@7046: \nocite{Rudnicki:1992:MizarOverview} wenzelm@7046: \nocite{Harrison:1996:MizarHOL} wenzelm@7046: \nocite{Rudnicki:1992:MizarOverview} wenzelm@7046: \nocite{Trybulec:1993:MizarFeatures} wenzelm@7046: \nocite{Syme:1997:DECLARE} wenzelm@7046: \nocite{Syme:1998:thesis} wenzelm@7046: \nocite{Syme:1999:TPHOL} wenzelm@7046: \nocite{Wenzel:1999:TPHOL} wenzelm@7046: wenzelm@7046: \include{intro} wenzelm@7046: \include{basics} wenzelm@7046: \include{syntax} wenzelm@7046: \include{pure} wenzelm@7135: \include{generic} wenzelm@7046: \include{hol} wenzelm@7046: wenzelm@7046: \begingroup wenzelm@7046: \bibliographystyle{plain} \small\raggedright\frenchspacing wenzelm@7046: \bibliography{../manual} wenzelm@7046: \endgroup wenzelm@7046: wenzelm@7046: \input{isar-ref.ind} wenzelm@7046: wenzelm@7046: \end{document}