doc-src/TutorialI/Recdef/document/termination.tex
author wenzelm
Fri, 28 Sep 2001 19:18:46 +0200
changeset 11627 abf9cda4a4d2
parent 11458 09a6c44a48ea
child 11636 0bec857c9871
permissions -rw-r--r--
updated;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9722
a5f86aed785b *** empty log message ***
nipkow
parents: 9721
diff changeset
     1
%
a5f86aed785b *** empty log message ***
nipkow
parents: 9721
diff changeset
     2
\begin{isabellebody}%
9924
3370f6aa3200 updated;
wenzelm
parents: 9792
diff changeset
     3
\def\isabellecontext{termination}%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
     4
%
2665170f104a Adding generated files
nipkow
parents:
diff changeset
     5
\begin{isamarkuptext}%
11309
d666f11ca2d4 minor suggestions by Tanja Vos
paulson
parents: 10971
diff changeset
     6
When a function~$f$ is defined via \isacommand{recdef}, Isabelle tries to prove
d666f11ca2d4 minor suggestions by Tanja Vos
paulson
parents: 10971
diff changeset
     7
its termination with the help of the user-supplied measure.  Each of the examples
d666f11ca2d4 minor suggestions by Tanja Vos
paulson
parents: 10971
diff changeset
     8
above is simple enough that Isabelle can automatically prove that the
d666f11ca2d4 minor suggestions by Tanja Vos
paulson
parents: 10971
diff changeset
     9
argument's measure decreases in each recursive call. As a result,
9792
bbefb6ce5cb2 *** empty log message ***
nipkow
parents: 9722
diff changeset
    10
$f$\isa{{\isachardot}simps} will contain the defining equations (or variants derived
bbefb6ce5cb2 *** empty log message ***
nipkow
parents: 9722
diff changeset
    11
from them) as theorems. For example, look (via \isacommand{thm}) at
10187
0376cccd9118 *** empty log message ***
nipkow
parents: 10186
diff changeset
    12
\isa{sep{\isachardot}simps} and \isa{sep{\isadigit{1}}{\isachardot}simps} to see that they define
9792
bbefb6ce5cb2 *** empty log message ***
nipkow
parents: 9722
diff changeset
    13
the same function. What is more, those equations are automatically declared as
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    14
simplification rules.
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    15
11458
09a6c44a48ea numerous stylistic changes and indexing
paulson
parents: 11429
diff changeset
    16
Isabelle may fail to prove the termination condition for some
09a6c44a48ea numerous stylistic changes and indexing
paulson
parents: 11429
diff changeset
    17
recursive call.  Let us try the following artificial function:%
8749
2665170f104a Adding generated files
nipkow
parents:
diff changeset
    18
\end{isamarkuptext}%
9933
9feb1e0c4cb3 *** empty log message ***
nipkow
parents: 9924
diff changeset
    19
\isacommand{consts}\ f\ {\isacharcolon}{\isacharcolon}\ {\isachardoublequote}nat{\isasymtimes}nat\ {\isasymRightarrow}\ nat{\isachardoublequote}\isanewline
11627
abf9cda4a4d2 updated;
wenzelm
parents: 11458
diff changeset
    20
\isacommand{recdef}\ \end{isabellebody}%
9145
9f7b8de5bfaf updated;
wenzelm
parents: 8771
diff changeset
    21
%%% Local Variables:
9f7b8de5bfaf updated;
wenzelm
parents: 8771
diff changeset
    22
%%% mode: latex
9f7b8de5bfaf updated;
wenzelm
parents: 8771
diff changeset
    23
%%% TeX-master: "root"
9f7b8de5bfaf updated;
wenzelm
parents: 8771
diff changeset
    24
%%% End: