doc-src/TutorialI/Recdef/document/Nested0.tex
author nipkow
Tue, 29 Aug 2000 15:13:10 +0200
changeset 9721 7e51c9f3d5a0
parent 9719 c753196599f9
child 9722 a5f86aed785b
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9721
7e51c9f3d5a0 *** empty log message ***
nipkow
parents: 9719
diff changeset
     1
\begin{isabelle}%
9698
f0740137a65d updated;
wenzelm
parents:
diff changeset
     2
%
f0740137a65d updated;
wenzelm
parents:
diff changeset
     3
\begin{isamarkuptext}%
f0740137a65d updated;
wenzelm
parents:
diff changeset
     4
In \S\ref{sec:nested-datatype} we defined the datatype of terms%
f0740137a65d updated;
wenzelm
parents:
diff changeset
     5
\end{isamarkuptext}%
f0740137a65d updated;
wenzelm
parents:
diff changeset
     6
\isacommand{datatype}\ {\isacharparenleft}{\isacharprime}a{\isacharcomma}{\isacharprime}b{\isacharparenright}{\isachardoublequote}term{\isachardoublequote}\ {\isacharequal}\ Var\ {\isacharprime}a\ {\isacharbar}\ App\ {\isacharprime}b\ {\isachardoublequote}{\isacharparenleft}{\isacharprime}a{\isacharcomma}{\isacharprime}b{\isacharparenright}term\ list{\isachardoublequote}%
f0740137a65d updated;
wenzelm
parents:
diff changeset
     7
\begin{isamarkuptext}%
f0740137a65d updated;
wenzelm
parents:
diff changeset
     8
\noindent
f0740137a65d updated;
wenzelm
parents:
diff changeset
     9
and closed with the observation that the associated schema for the definition
f0740137a65d updated;
wenzelm
parents:
diff changeset
    10
of primitive recursive functions leads to overly verbose definitions. Moreover,
f0740137a65d updated;
wenzelm
parents:
diff changeset
    11
if you have worked exercise~\ref{ex:trev-trev} you will have noticed that
f0740137a65d updated;
wenzelm
parents:
diff changeset
    12
you needed to reprove many lemmas reminiscent of similar lemmas about
f0740137a65d updated;
wenzelm
parents:
diff changeset
    13
\isa{rev}. We will now show you how \isacommand{recdef} can simplify
f0740137a65d updated;
wenzelm
parents:
diff changeset
    14
definitions and proofs about nested recursive datatypes. As an example we
f0740137a65d updated;
wenzelm
parents:
diff changeset
    15
chose exercise~\ref{ex:trev-trev}:
f0740137a65d updated;
wenzelm
parents:
diff changeset
    16
f0740137a65d updated;
wenzelm
parents:
diff changeset
    17
FIXME: declare trev now!%
f0740137a65d updated;
wenzelm
parents:
diff changeset
    18
\end{isamarkuptext}%
9721
7e51c9f3d5a0 *** empty log message ***
nipkow
parents: 9719
diff changeset
    19
\end{isabelle}%
9698
f0740137a65d updated;
wenzelm
parents:
diff changeset
    20
%%% Local Variables:
f0740137a65d updated;
wenzelm
parents:
diff changeset
    21
%%% mode: latex
f0740137a65d updated;
wenzelm
parents:
diff changeset
    22
%%% TeX-master: "root"
f0740137a65d updated;
wenzelm
parents:
diff changeset
    23
%%% End: