23004
|
1 |
\section{Introduction}
|
|
2 |
|
23188
|
3 |
In the upcomung release of Isabelle 2007, new facilities for recursive
|
|
4 |
function definitions \cite{krauss2006} will be available.
|
23004
|
5 |
|
23188
|
6 |
This tutorial is an example-guided introduction to the practical use
|
|
7 |
of the package. We assume that you have mastered the basic concepts of
|
|
8 |
Isabelle/HOL and are able to write basic specifications and
|
|
9 |
proofs. To start out with Isabelle in general, you should read the
|
|
10 |
tutorial \cite{isa-tutorial}.
|
23004
|
11 |
|
|
12 |
% Definitional extension
|
|
13 |
|
|
14 |
Following the LCF tradition, the package is realized as a definitional
|
|
15 |
extension: Recursive definitions are internally transformed into a
|
|
16 |
non-recursive form, such that the function can be defined using
|
|
17 |
standard definition facilities. Then the recursive specification is
|
|
18 |
derived from the primitive definition. This is a complex task, but it
|
|
19 |
is fully automated and mostly transparent to the user. Definitional
|
|
20 |
extensions are valuable because they are conservative by construction:
|
|
21 |
The new concept of general wellfounded recursion is completely reduced
|
|
22 |
to existing principles.
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
The new \cmd{function} command, and its short form \cmd{fun} will
|
23188
|
28 |
replace the traditional \cmd{recdef} command \cite{slind-tfl} in the future. It solves
|
23004
|
29 |
a few of technical issues around \cmd{recdef}, and allows definitions
|
|
30 |
which were not previously possible.
|
|
31 |
|
|
32 |
|
|
33 |
|
23188
|
34 |
|