doc-src/IsarRef/basics.tex
author wenzelm
Wed, 27 Oct 1999 18:12:40 +0200
changeset 7956 edaca60a54cd
parent 7895 7c492d8bc8e3
child 7981 5120a2a15d06
permissions -rw-r--r--
tuned msg;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
     1
7297
wenzelm
parents: 7135
diff changeset
     2
\chapter{Basic Concepts}\label{ch:basics}
wenzelm
parents: 7135
diff changeset
     3
7895
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
     4
\section{Isabelle/Isar theories}
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
     5
7297
wenzelm
parents: 7135
diff changeset
     6
Isabelle/Isar offers two main improvements over classic Isabelle:
wenzelm
parents: 7135
diff changeset
     7
\begin{enumerate}
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
     8
\item A new \emph{theory format}, occasionally referred to as ``new-style
7895
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
     9
  theories'', supporting interactive development and unlimited undo operation.
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    10
\item A \emph{formal proof document language} designed to support intelligible
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    11
  semi-automated reasoning.  Instead of putting together unreadable tactic
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    12
  scripts, the author is enabled to express the reasoning in way that is close
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    13
  to mathematical practice.
7297
wenzelm
parents: 7135
diff changeset
    14
\end{enumerate}
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    15
7297
wenzelm
parents: 7135
diff changeset
    16
The Isar proof language is embedded into the new theory format as a proper
wenzelm
parents: 7135
diff changeset
    17
sub-language.  Proof mode is entered by stating some $\THEOREMNAME$ or
7895
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    18
$\LEMMANAME$ at the theory level, and left again with the final conclusion
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    19
(e.g.\ via $\QEDNAME$).  A few theory extension mechanisms require proof as
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    20
well, such as the HOL $\isarkeyword{typedef}$ which demands non-emptiness of
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    21
the representing sets.
7297
wenzelm
parents: 7135
diff changeset
    22
wenzelm
parents: 7135
diff changeset
    23
New-style theory files may still be associated with an ML file consisting of
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7297
diff changeset
    24
plain old tactic scripts.  There is no longer any ML binding generated for the
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    25
theory and theorems, though.  ML functions \texttt{theory}, \texttt{thm}, and
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    26
\texttt{thms} retrieve this information \cite{isabelle-ref}.  Nevertheless,
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    27
migration between classic Isabelle and Isabelle/Isar is relatively easy.  Thus
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    28
users may start to benefit from interactive theory development even before
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    29
they have any idea of the Isar proof language.
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7297
diff changeset
    30
76a39a3784b5 checkpoint;
wenzelm
parents: 7297
diff changeset
    31
\begin{warn}
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    32
  Currently Proof~General does \emph{not} support mixed interactive
7895
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    33
  development of classic Isabelle theory files and tactic scripts, together
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    34
  with Isar documents at the same time.  The ``\texttt{isa}'' and
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    35
  ``\texttt{isar}'' versions of Proof~General are handled as two different
7895
7c492d8bc8e3 updated;
wenzelm
parents: 7466
diff changeset
    36
  theorem proving systems, only one of these may be active.
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7297
diff changeset
    37
\end{warn}
7297
wenzelm
parents: 7135
diff changeset
    38
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    39
Porting of existing tactic scripts is best done by running two separate
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    40
Proof~General sessions, one for replaying the old script and the other for the
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    41
emerging Isabelle/Isar document.
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    42
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    43
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    44
\section{The Isar proof language}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    45
7466
7df66ce6508a updated;
wenzelm
parents: 7335
diff changeset
    46
Sorry, this important section has not been written yet!  Refer to
7297
wenzelm
parents: 7135
diff changeset
    47
\cite{Wenzel:1999:TPHOL} for the time being.
wenzelm
parents: 7135
diff changeset
    48
wenzelm
parents: 7135
diff changeset
    49
\subsection{Commands}
wenzelm
parents: 7135
diff changeset
    50
wenzelm
parents: 7135
diff changeset
    51
\subsubsection{Isar primitives}
wenzelm
parents: 7135
diff changeset
    52
wenzelm
parents: 7135
diff changeset
    53
\subsubsection{Derived elements}
wenzelm
parents: 7135
diff changeset
    54
7135
wenzelm
parents: 7046
diff changeset
    55
wenzelm
parents: 7046
diff changeset
    56
\subsection{Methods}
7046
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    57
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    58
\subsection{Attributes}
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    59
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    60
%%% Local Variables: 
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    61
%%% mode: latex
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    62
%%% TeX-master: "isar-ref"
9f755ff43cff skeleton only;
wenzelm
parents:
diff changeset
    63
%%% End: