
diff -r 5ddbdbadba06 -r 0848ab6fe5fc src/HOL/Induct/SList.thy
--- a/src/HOL/Induct/SList.thy	Thu Apr 22 11:02:22 2004 +0200
+++ b/src/HOL/Induct/SList.thy	Thu Apr 22 12:11:17 2004 +0200
@@ -79,16 +79,14 @@
   "Cons"       :: "['a, 'a list] => 'a list"           (infixr "#" 65)
    "x#xs == Abs_List(CONS (Leaf x)(Rep_List xs))"
 
-  list_case :: "['b, ['a, 'a list]=>'b, 'a list] => 'b"
-   "list_case a f xs == list_rec xs a (%x xs r. f x xs)"
-
   (* list Recursion -- the trancl is Essential; see list.ML *)
-
-
   list_rec  :: "['a list, 'b, ['a, 'a list, 'b]=>'b] => 'b"
    "list_rec l c d ==
       List_rec(Rep_List l) c (%x y r. d(inv Leaf x)(Abs_List y) r)"
 
+  list_case :: "['b, ['a, 'a list]=>'b, 'a list] => 'b"
+   "list_case a f xs == list_rec xs a (%x xs r. f x xs)"
+
 (* list Enumeration *)
 consts
   "[]"      :: "'a list"                            ("[]")
@@ -178,14 +176,14 @@
   "rev xs   == list_rec xs [] (%x xs xsa. xsa @ [x])"
 
 (* miscellaneous definitions *)
-  zip       :: "'a list * 'b list => ('a*'b) list"
-  "zip      == zipWith  (%s. s)"
-
   zipWith   :: "['a * 'b => 'c, 'a list * 'b list] => 'c list"
   "zipWith f S == (list_rec (fst S)  (%T.[])
                             (%x xs r. %T. if null T then [] 
                                           else f(x,hd T) # r(tl T)))(snd(S))"
 
+  zip       :: "'a list * 'b list => ('a*'b) list"
+  "zip      == zipWith  (%s. s)"
+
   unzip     :: "('a*'b) list => ('a list * 'b list)"
   "unzip    == foldr(% (a,b)(c,d).(a#c,b#d))([],[])"
 




