doc-src/IsarAdvanced/Functions/intro.tex
author krauss
Thu, 17 May 2007 23:04:54 +0200
changeset 23004 6658911db679
child 23188 595a0e24bd8e
permissions -rw-r--r--
added files
krauss@23004
     1
\section{Introduction}
krauss@23004
     2
krauss@23004
     3
In Isabelle 2007, new facilities for recursive function definitions
krauss@23004
     4
are available.
krauss@23004
     5
krauss@23004
     6
This document is intended as a tutorial for both inexperienced and
krauss@23004
     7
advanced users, and demonstrates the use of the package with a lot of
krauss@23004
     8
examples.
krauss@23004
     9
krauss@23004
    10
% Definitional extension
krauss@23004
    11
krauss@23004
    12
Following the LCF tradition, the package is realized as a definitional
krauss@23004
    13
extension: Recursive definitions are internally transformed into a
krauss@23004
    14
non-recursive form, such that the function can be defined using
krauss@23004
    15
standard definition facilities. Then the recursive specification is
krauss@23004
    16
derived from the primitive definition.  This is a complex task, but it
krauss@23004
    17
is fully automated and mostly transparent to the user. Definitional
krauss@23004
    18
extensions are valuable because they are conservative by construction:
krauss@23004
    19
The new concept of general wellfounded recursion is completely reduced
krauss@23004
    20
to existing principles.
krauss@23004
    21
krauss@23004
    22
krauss@23004
    23
krauss@23004
    24
krauss@23004
    25
The new \cmd{function} command, and its short form \cmd{fun} will
krauss@23004
    26
replace the traditional \cmd{recdef} command in the future. It solves
krauss@23004
    27
a few of technical issues around \cmd{recdef}, and allows definitions
krauss@23004
    28
which were not previously possible.
krauss@23004
    29
krauss@23004
    30
krauss@23004
    31