wenzelm@7046
|
1 |
|
wenzelm@7046
|
2 |
%% $Id$
|
wenzelm@7046
|
3 |
|
wenzelm@7836
|
4 |
\documentclass[12pt,a4paper,fleqn]{report}
|
wenzelm@9695
|
5 |
\usepackage{latexsym,graphicx,../iman,../extra,../ttbox,../proof,../rail,../railsetup,../isar,../pdfsetup}
|
wenzelm@7046
|
6 |
|
wenzelm@7046
|
7 |
\title{\includegraphics[scale=0.5]{isabelle_isar} \\[4ex] The Isabelle/Isar Reference Manual}
|
wenzelm@7050
|
8 |
\author{\emph{Markus Wenzel} \\ TU M\"unchen}
|
wenzelm@7046
|
9 |
|
wenzelm@7050
|
10 |
\makeindex
|
wenzelm@7050
|
11 |
|
wenzelm@9658
|
12 |
\newcommand{\isastyle}{\small\tt\slshape}
|
wenzelm@9658
|
13 |
\newcommand{\isa}[1]{\emph{\isastyle #1}}
|
wenzelm@10208
|
14 |
\newcommand{\isamath}[1]{\emph{$#1$}}
|
wenzelm@10208
|
15 |
\newcommand{\isasymColon}{\isamath{\mathrel{::}}}
|
wenzelm@10208
|
16 |
\newcommand{\isasymRightarrow}{\isamath{\Rightarrow}}
|
wenzelm@9204
|
17 |
|
wenzelm@9204
|
18 |
\railterm{percent,ppercent,underscore,lbrace,rbrace,atsign}
|
wenzelm@7167
|
19 |
\railterm{ident,longident,symident,var,textvar,typefree,typevar,nat,string,verbatim,keyword}
|
wenzelm@8596
|
20 |
\railterm{name,nameref,text,type,term,prop,atom}
|
wenzelm@7134
|
21 |
|
wenzelm@8594
|
22 |
\railalias{ident}{\railtoken{ident}}
|
wenzelm@8594
|
23 |
\railalias{longident}{\railtoken{longident}}
|
wenzelm@8594
|
24 |
\railalias{symident}{\railtoken{symident}}
|
wenzelm@8594
|
25 |
\railalias{var}{\railtoken{var}}
|
wenzelm@8594
|
26 |
\railalias{textvar}{\railtoken{textvar}}
|
wenzelm@8594
|
27 |
\railalias{typefree}{\railtoken{typefree}}
|
wenzelm@8594
|
28 |
\railalias{typevar}{\railtoken{typevar}}
|
wenzelm@8594
|
29 |
\railalias{nat}{\railtoken{nat}}
|
wenzelm@8594
|
30 |
\railalias{string}{\railtoken{string}}
|
wenzelm@8594
|
31 |
\railalias{verbatim}{\railtoken{verbatim}}
|
wenzelm@8594
|
32 |
\railalias{keyword}{\railtoken{keyword}}
|
wenzelm@8594
|
33 |
|
wenzelm@7134
|
34 |
\railalias{name}{\railqtoken{name}}
|
wenzelm@7134
|
35 |
\railalias{nameref}{\railqtoken{nameref}}
|
wenzelm@7134
|
36 |
\railalias{text}{\railqtoken{text}}
|
wenzelm@7134
|
37 |
\railalias{type}{\railqtoken{type}}
|
wenzelm@7134
|
38 |
\railalias{term}{\railqtoken{term}}
|
wenzelm@7134
|
39 |
\railalias{prop}{\railqtoken{prop}}
|
wenzelm@7134
|
40 |
\railalias{atom}{\railqtoken{atom}}
|
wenzelm@7134
|
41 |
|
wenzelm@7895
|
42 |
\newcommand{\drv}{\mathrel{\vdash}}
|
wenzelm@7895
|
43 |
\newcommand{\edrv}{\mathop{\drv}\nolimits}
|
wenzelm@7974
|
44 |
\newcommand{\Or}{\mathrel{\;|\;}}
|
wenzelm@7895
|
45 |
|
wenzelm@7046
|
46 |
|
wenzelm@7046
|
47 |
\setcounter{secnumdepth}{2} \setcounter{tocdepth}{2}
|
wenzelm@7046
|
48 |
|
wenzelm@7046
|
49 |
\pagestyle{headings}
|
wenzelm@7046
|
50 |
\sloppy
|
wenzelm@7046
|
51 |
\binperiod %%%treat . like a binary operator
|
wenzelm@7046
|
52 |
|
wenzelm@7134
|
53 |
\renewcommand{\phi}{\varphi}
|
wenzelm@7046
|
54 |
|
wenzelm@10240
|
55 |
%\includeonly{}
|
wenzelm@7895
|
56 |
|
wenzelm@7046
|
57 |
|
wenzelm@7046
|
58 |
\begin{document}
|
wenzelm@7046
|
59 |
|
wenzelm@7046
|
60 |
\underscoreoff
|
wenzelm@7046
|
61 |
|
wenzelm@7046
|
62 |
\maketitle
|
wenzelm@7046
|
63 |
|
wenzelm@7046
|
64 |
\begin{abstract}
|
wenzelm@7167
|
65 |
\emph{Intelligible semi-automated reasoning} (\emph{Isar}) is a generic
|
wenzelm@7167
|
66 |
approach to readable formal proof documents. It sets out to bridge the
|
wenzelm@7167
|
67 |
semantic gap between any internal notions of proof based on primitive
|
wenzelm@7167
|
68 |
inferences and tactics, and an appropriate level of abstraction for
|
wenzelm@7167
|
69 |
user-level work. The Isar formal proof language has been designed to
|
wenzelm@7167
|
70 |
satisfy quite contradictory requirements, being both ``declarative'' and
|
wenzelm@7167
|
71 |
immediately ``executable'', by virtue of the \emph{Isar/VM} interpreter.
|
wenzelm@7167
|
72 |
|
wenzelm@10160
|
73 |
The Isabelle/Isar system provides an interpreter for the Isar formal proof
|
wenzelm@10160
|
74 |
language. The input may consist either of proper document constructors, or
|
wenzelm@10160
|
75 |
improper auxiliary commands (for diagnostics, exploration etc.). Proof
|
wenzelm@10160
|
76 |
texts consisting of proper elements only admit a purely static reading, thus
|
wenzelm@10160
|
77 |
being intelligible later without requiring dynamic replay that is so typical
|
wenzelm@10160
|
78 |
for traditional proof scripts. Any of the Isabelle/Isar commands may be
|
wenzelm@10160
|
79 |
executed in single-steps, so basically the interpreter has a proof text
|
wenzelm@10160
|
80 |
debugger already built-in.
|
wenzelm@7167
|
81 |
|
wenzelm@8509
|
82 |
Employing the Isar instantiation of \emph{Proof~General}, a generic Emacs
|
wenzelm@8509
|
83 |
interface for interactive proof assistants, we arrive at a reasonable
|
wenzelm@8509
|
84 |
environment for \emph{live document editing}. Thus proof texts may be
|
wenzelm@8547
|
85 |
developed incrementally by issuing proof commands, including forward and
|
wenzelm@8547
|
86 |
backward tracing of partial documents; intermediate states may be inspected
|
wenzelm@8547
|
87 |
by diagnostic commands.
|
wenzelm@7167
|
88 |
|
wenzelm@7335
|
89 |
The Isar subsystem is tightly integrated into the Isabelle/Pure meta-logic
|
wenzelm@7335
|
90 |
implementation. Theories, theorems, proof procedures etc.\ may be used
|
wenzelm@7895
|
91 |
interchangeably between classic Isabelle proof scripts and Isabelle/Isar
|
wenzelm@10160
|
92 |
documents. Even more, Isar provides a set of emulation commands and methods
|
wenzelm@10160
|
93 |
for simulating traditional tactic scripts within new-style theory documents.
|
wenzelm@10160
|
94 |
|
wenzelm@10160
|
95 |
The Isar framework is as generic as Isabelle, able to support a wide range
|
wenzelm@10160
|
96 |
of object-logics. Currently, the end-user working environment is most
|
wenzelm@10160
|
97 |
complete for Isabelle/HOL.
|
wenzelm@7046
|
98 |
\end{abstract}
|
wenzelm@7046
|
99 |
|
wenzelm@7046
|
100 |
\pagenumbering{roman} \tableofcontents \clearfirst
|
wenzelm@7046
|
101 |
|
wenzelm@7046
|
102 |
%FIXME
|
wenzelm@9600
|
103 |
\nocite{Aspinall:2000:eProof}
|
wenzelm@9600
|
104 |
\nocite{Bauer-Wenzel:2000:HB}
|
wenzelm@9600
|
105 |
\nocite{Harrison:1996:MizarHOL}
|
wenzelm@9600
|
106 |
\nocite{Muzalewski:Mizar}
|
wenzelm@7046
|
107 |
\nocite{Rudnicki:1992:MizarOverview}
|
wenzelm@7046
|
108 |
\nocite{Rudnicki:1992:MizarOverview}
|
wenzelm@7046
|
109 |
\nocite{Syme:1997:DECLARE}
|
wenzelm@7046
|
110 |
\nocite{Syme:1998:thesis}
|
wenzelm@7046
|
111 |
\nocite{Syme:1999:TPHOL}
|
wenzelm@9600
|
112 |
\nocite{Trybulec:1993:MizarFeatures}
|
wenzelm@9600
|
113 |
\nocite{Wiedijk:1999:Mizar}
|
wenzelm@9600
|
114 |
\nocite{Wiedijk:2000:MV}
|
wenzelm@7988
|
115 |
\nocite{Zammit:1999:TPHOL}
|
wenzelm@7046
|
116 |
|
wenzelm@7046
|
117 |
\include{intro}
|
wenzelm@7046
|
118 |
\include{basics}
|
wenzelm@7046
|
119 |
\include{syntax}
|
wenzelm@7046
|
120 |
\include{pure}
|
wenzelm@7135
|
121 |
\include{generic}
|
wenzelm@7046
|
122 |
\include{hol}
|
wenzelm@7046
|
123 |
|
wenzelm@7895
|
124 |
\appendix
|
wenzelm@7895
|
125 |
\include{refcard}
|
wenzelm@9600
|
126 |
\include{conversion}
|
wenzelm@7895
|
127 |
|
wenzelm@7046
|
128 |
\begingroup
|
wenzelm@7046
|
129 |
\bibliographystyle{plain} \small\raggedright\frenchspacing
|
wenzelm@7046
|
130 |
\bibliography{../manual}
|
wenzelm@7046
|
131 |
\endgroup
|
wenzelm@7046
|
132 |
|
wenzelm@8828
|
133 |
\printindex
|
wenzelm@7046
|
134 |
|
wenzelm@7046
|
135 |
\end{document}
|