
diff -r 81921f8ad245 -r 02b24877be3e Nominal/Nominal2.thy
--- a/Nominal/Nominal2.thy	Wed Dec 22 12:47:09 2010 +0000
+++ b/Nominal/Nominal2.thy	Wed Dec 22 21:13:32 2010 +0000
@@ -44,11 +44,26 @@
   | mk_union_env tys (t1, @{term "set ([]::atom list)"}) = t1
   | mk_union_env tys (@{term "set ([]::atom list)"}, t2) = t2
   | mk_union_env tys (t1, t2) = mk_binop_env tys @{const_name "sup"} (t1, t2)  
+*}
 
-fun fold_union_env tys trms = fold_rev (curry (mk_union_env tys)) trms @{term "{}::atom set"}
+ML {*
+fun fold_left f [] z = z
+  | fold_left f [x] z = x
+  | fold_left f (x :: y :: xs) z = fold_left f (f (x, y) :: xs) z
+*}
 
+ML {*
+fun fold_union_env tys trms = fold_left (mk_union_env tys) trms @{term "{}::atom set"} 
 *}
 
+ML {*
+fold_union_env [] [@{term "t1::atom set"}, @{term "t2::atom set"}, @{term "t3::atom set"}]
+|> Syntax.string_of_term @{context}
+|> writeln
+*}
+
+
+
 
 ML {*
 fun process_ecase lthy c (params, prems, concl) bclauses =




