doc-src/TutorialI/Recdef/Nested0.thy
changeset 9645 20ae97cd2a16
child 9754 a123a64cadeb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/TutorialI/Recdef/Nested0.thy	Fri Aug 18 11:14:23 2000 +0200
@@ -0,0 +1,25 @@
+(*<*)
+theory Nested0 = Main:
+(*>*)
+
+text{*
+In \S\ref{sec:nested-datatype} we defined the datatype of terms
+*}
+
+datatype ('a,'b)"term" = Var 'a | App 'b "('a,'b)term list"
+
+text{*\noindent
+and closed with the observation that the associated schema for the definition
+of primitive recursive functions leads to overly verbose definitions. Moreover,
+if you have worked exercise~\ref{ex:trev-trev} you will have noticed that
+you needed to reprove many lemmas reminiscent of similar lemmas about
+@{term"rev"}. We will now show you how \isacommand{recdef} can simplify
+definitions and proofs about nested recursive datatypes. As an example we
+chose exercise~\ref{ex:trev-trev}:
+
+FIXME: declare trev now!
+*}
+(* consts trev  :: "('a,'b)term => ('a,'b)term" *)
+(*<*)
+end
+(*>*)