1 |
1 |
2 \chapter{Basic Concepts}\label{ch:basics} |
2 \chapter{Basic Concepts}\label{ch:basics} |
3 |
3 |
4 Isabelle/Isar offers two main improvements over classic Isabelle: |
4 Isabelle/Isar offers two main improvements over classic Isabelle: |
5 \begin{enumerate} |
5 \begin{enumerate} |
6 \item A new \emph{theory format}, often referred to as ``new-style theories'', |
6 \item A new \emph{theory format}, occasionally referred to as ``new-style |
7 supporting interactive development and unlimited undo operation. |
7 theories'', supporting interactive development with unlimited undo |
|
8 operation. |
8 \item A \emph{formal proof language} designed to support intelligible |
9 \item A \emph{formal proof language} designed to support intelligible |
9 semi-automated reasoning. Rather than putting together tactic scripts, the |
10 semi-automated reasoning. Rather than putting together tactic scripts, the |
10 author is enabled to express the reasoning in way that is close to |
11 author is enabled to express the reasoning in way that is close to |
11 mathematical practice. |
12 mathematical practice. |
12 \end{enumerate} |
13 \end{enumerate} |
13 |
14 |
14 The Isar proof language is embedded into the new theory format as a proper |
15 The Isar proof language is embedded into the new theory format as a proper |
15 sub-language. Proof mode is entered by stating some $\THEOREMNAME$ or |
16 sub-language. Proof mode is entered by stating some $\THEOREMNAME$ or |
16 $\LEMMANAME$ at the theory level, and left with the final end of proof (e.g.\ |
17 $\LEMMANAME$ at the theory level, and left with the conclusion of the proof |
17 via $\QEDNAME$). Some theory extension mechanisms require proof as well, such |
18 (via $\QEDNAME$ etc.). Some theory extension mechanisms require proof as |
18 as the HOL $\isarkeyword{typedef}$ which only works for non-empty representing |
19 well, such as the HOL $\isarkeyword{typedef}$ which demands non-emptiness of |
19 sets. |
20 the representing sets. |
20 |
21 |
21 New-style theory files may still be associated with an ML file consisting of |
22 New-style theory files may still be associated with an ML file consisting of |
22 plain old tactic scripts. There is no longer any ML binding generated for the |
23 plain old tactic scripts. There is no longer any ML binding generated for the |
23 theory and theorems, though. Functions \texttt{theory}, \texttt{thm}, and |
24 theory and theorems, though. ML functions \texttt{theory}, \texttt{thm}, and |
24 \texttt{thms} may be used to retrieve this information from ML |
25 \texttt{thms} retrieve this information \cite{isabelle-ref}. Nevertheless, |
25 \cite{isabelle-ref}. Nevertheless, migration between classic Isabelle and |
26 migration between classic Isabelle and Isabelle/Isar is relatively easy. Thus |
26 Isabelle/Isar is relatively easy. Thus users may start to benefit from |
27 users may start to benefit from interactive theory development even before |
27 interactive theory development even before they have any idea of the Isar |
28 they have any idea of the Isar proof language. |
28 proof language. |
|
29 |
29 |
30 \begin{warn} |
30 \begin{warn} |
31 Proof~General does \emph{not} support mixed interactive development of |
31 Currently Proof~General does \emph{not} support mixed interactive |
32 classic Isabelle theory files and tactic scripts together with Isar |
32 development of classic Isabelle theory files and tactic scripts together |
33 documents at the same time. The ``\texttt{isa}'' and ``\texttt{isar}'' |
33 with Isar documents at the same time. The ``\texttt{isa}'' and |
34 versions of Proof~General are handled as two different theorem proving |
34 ``\texttt{isar}'' versions of Proof~General are handled as two different |
35 systems, only one may be active at the same time. |
35 theorem proving systems, only one may be active at the same time. |
36 \end{warn} |
36 \end{warn} |
|
37 |
|
38 Porting of existing tactic scripts is best done by running two separate |
|
39 Proof~General sessions, one for replaying the old script and the other for the |
|
40 emerging Isabelle/Isar document. |
37 |
41 |
38 |
42 |
39 \section{The Isar proof language} |
43 \section{The Isar proof language} |
40 |
44 |
41 Sorry, this rather important section has not been written yet! Refer to |
45 Sorry, this important section has not been written yet! Refer to |
42 \cite{Wenzel:1999:TPHOL} for the time being. |
46 \cite{Wenzel:1999:TPHOL} for the time being. |
43 |
47 |
44 \subsection{Commands} |
48 \subsection{Commands} |
45 |
49 |
46 \subsubsection{Isar primitives} |
50 \subsubsection{Isar primitives} |