src/Pure/meta_simplifier.ML
changeset 19482 9f11af8f7ef9
parent 19303 7da7e96bd74d
child 19502 369cde91963d
--- a/src/Pure/meta_simplifier.ML	Thu Apr 27 12:11:56 2006 +0200
+++ b/src/Pure/meta_simplifier.ML	Thu Apr 27 15:06:35 2006 +0200
@@ -398,7 +398,7 @@
 fun rewrite_rule_extra_vars prems elhs erhs =
   not (term_varnames erhs subset fold add_term_varnames prems (term_varnames elhs))
   orelse
-  not (term_tvars erhs subset (term_tvars elhs union List.concat (map term_tvars prems)));
+  not (term_tvars erhs subset (term_tvars elhs union maps term_tvars prems));
 
 (*simple test for looping rewrite rules and stupid orientations*)
 fun default_reorient thy prems lhs rhs =
@@ -488,16 +488,16 @@
   end;
 
 fun extract_rews (Simpset (_, {mk_rews = {mk, ...}, ...}), thms) =
-  List.concat (map (fn thm => map (rpair (Thm.name_of_thm thm)) (mk thm)) thms);
+  maps (fn thm => map (rpair (Thm.name_of_thm thm)) (mk thm)) thms;
 
 fun orient_comb_simps comb mk_rrule (ss, thms) =
   let
     val rews = extract_rews (ss, thms);
-    val rrules = List.concat (map mk_rrule rews);
+    val rrules = maps mk_rrule rews;
   in Library.foldl comb (ss, rrules) end;
 
 fun extract_safe_rrules (ss, thm) =
-  List.concat (map (orient_rrule ss) (extract_rews (ss, [thm])));
+  maps (orient_rrule ss) (extract_rews (ss, [thm]));
 
 (*add rewrite rules explicitly; do not reorient!*)
 fun ss addsimps thms =
@@ -570,7 +570,7 @@
         raise SIMPLIFIER ("Congruence must start with a constant", thm);
       val (alist, _) = congs;
       val alist2 = List.filter (fn (x, _) => x <> a) alist;
-      val weak2 = alist2 |> List.mapPartial (fn (a, {thm, ...}: cong) =>
+      val weak2 = alist2 |> map_filter (fn (a, {thm, ...}: cong) =>
         if is_full_cong thm then NONE else SOME a);
     in ((alist2, weak2), procs, mk_rews, termless, subgoal_tac, loop_tacs, solvers) end);
 
@@ -1037,7 +1037,7 @@
         in (extract_safe_rrules (ss, asm), SOME asm) end
 
     and add_rrules (rrss, asms) ss =
-      Library.foldl (insert_rrule true) (ss, List.concat rrss) |> add_prems (List.mapPartial I asms)
+      Library.foldl (insert_rrule true) (ss, flat rrss) |> add_prems (map_filter I asms)
 
     and disch r (prem, eq) =
       let