src/Doc/Tutorial/Recdef/examples.thy
changeset 58860 fee7cfa69c50
parent 48985 5386df44a037
child 67406 23307fd33906
--- a/src/Doc/Tutorial/Recdef/examples.thy	Sat Nov 01 11:40:55 2014 +0100
+++ b/src/Doc/Tutorial/Recdef/examples.thy	Sat Nov 01 14:20:38 2014 +0100
@@ -1,16 +1,16 @@
 (*<*)
-theory examples imports Main begin;
+theory examples imports Main begin
 (*>*)
 
 text{*
 Here is a simple example, the \rmindex{Fibonacci function}:
 *}
 
-consts fib :: "nat \<Rightarrow> nat";
+consts fib :: "nat \<Rightarrow> nat"
 recdef fib "measure(\<lambda>n. n)"
   "fib 0 = 0"
   "fib (Suc 0) = 1"
-  "fib (Suc(Suc x)) = fib x + fib (Suc x)";
+  "fib (Suc(Suc x)) = fib x + fib (Suc x)"
 
 text{*\noindent
 \index{measure functions}%
@@ -27,11 +27,11 @@
 between any two elements of a list:
 *}
 
-consts sep :: "'a \<times> 'a list \<Rightarrow> 'a list";
+consts sep :: "'a \<times> 'a list \<Rightarrow> 'a list"
 recdef sep "measure (\<lambda>(a,xs). length xs)"
   "sep(a, [])     = []"
   "sep(a, [x])    = [x]"
-  "sep(a, x#y#zs) = x # a # sep(a,y#zs)";
+  "sep(a, x#y#zs) = x # a # sep(a,y#zs)"
 
 text{*\noindent
 This time the measure is the length of the list, which decreases with the
@@ -43,20 +43,20 @@
 need not be exhaustive:
 *}
 
-consts last :: "'a list \<Rightarrow> 'a";
+consts last :: "'a list \<Rightarrow> 'a"
 recdef last "measure (\<lambda>xs. length xs)"
   "last [x]      = x"
-  "last (x#y#zs) = last (y#zs)";
+  "last (x#y#zs) = last (y#zs)"
 
 text{*
 Overlapping patterns are disambiguated by taking the order of equations into
 account, just as in functional programming:
 *}
 
-consts sep1 :: "'a \<times> 'a list \<Rightarrow> 'a list";
+consts sep1 :: "'a \<times> 'a list \<Rightarrow> 'a list"
 recdef sep1 "measure (\<lambda>(a,xs). length xs)"
   "sep1(a, x#y#zs) = x # a # sep1(a,y#zs)"
-  "sep1(a, xs)     = xs";
+  "sep1(a, xs)     = xs"
 
 text{*\noindent
 To guarantee that the second equation can only be applied if the first
@@ -74,10 +74,10 @@
   arguments as in the following definition:
 \end{warn}
 *}
-consts sep2 :: "'a list \<Rightarrow> 'a \<Rightarrow> 'a list";
+consts sep2 :: "'a list \<Rightarrow> 'a \<Rightarrow> 'a list"
 recdef sep2 "measure length"
   "sep2 (x#y#zs) = (\<lambda>a. x # a # sep2 (y#zs) a)"
-  "sep2 xs       = (\<lambda>a. xs)";
+  "sep2 xs       = (\<lambda>a. xs)"
 
 text{*
 Because of its pattern-matching syntax, \isacommand{recdef} is also useful
@@ -85,10 +85,10 @@
 degenerates to the empty set @{term"{}"}:
 *}
 
-consts swap12 :: "'a list \<Rightarrow> 'a list";
+consts swap12 :: "'a list \<Rightarrow> 'a list"
 recdef swap12 "{}"
   "swap12 (x#y#zs) = y#x#zs"
-  "swap12 zs       = zs";
+  "swap12 zs       = zs"
 
 (*<*)
 end