doc-src/IsarAdvanced/Functions/intro.tex
author krauss
Tue, 22 May 2007 13:40:37 +0200
changeset 23070 c5b896d9788c
parent 23004 6658911db679
child 23188 595a0e24bd8e
permissions -rw-r--r--
regression tests: send failure reports to krauss@in.tum.de, too

\section{Introduction}

In Isabelle 2007, new facilities for recursive function definitions
are available.

This document is intended as a tutorial for both inexperienced and
advanced users, and demonstrates the use of the package with a lot of
examples.

% Definitional extension

Following the LCF tradition, the package is realized as a definitional
extension: Recursive definitions are internally transformed into a
non-recursive form, such that the function can be defined using
standard definition facilities. Then the recursive specification is
derived from the primitive definition.  This is a complex task, but it
is fully automated and mostly transparent to the user. Definitional
extensions are valuable because they are conservative by construction:
The new concept of general wellfounded recursion is completely reduced
to existing principles.




The new \cmd{function} command, and its short form \cmd{fun} will
replace the traditional \cmd{recdef} command in the future. It solves
a few of technical issues around \cmd{recdef}, and allows definitions
which were not previously possible.