optimize continuity proofs in fixrec package, using cont2cont rules
authorhuffman
Sat, 22 May 2010 14:04:05 -0700
changeset 37084 665a3dfe8632
parent 37083 03a70ab79dd9
child 37085 b2073920448f
optimize continuity proofs in fixrec package, using cont2cont rules
src/HOLCF/Tools/fixrec.ML
--- a/src/HOLCF/Tools/fixrec.ML	Sat May 22 13:40:15 2010 -0700
+++ b/src/HOLCF/Tools/fixrec.ML	Sat May 22 14:04:05 2010 -0700
@@ -133,7 +133,10 @@
           "The error occurred for the goal statement:\n" ^
           Syntax.string_of_term lthy prop);
         fun check th = case Thm.nprems_of th of 0 => all_tac th | n => err ();
-        val tac = simp_tac (simpset_of lthy) 1 THEN check;
+        val rules = Cont2ContData.get lthy;
+        val fast_tac = SOLVED' (REPEAT_ALL_NEW (match_tac rules));
+        val slow_tac = simp_tac (simpset_of lthy);
+        val tac = (fast_tac 1 ORELSE slow_tac 1) THEN check;
       in
         Goal.prove lthy [] [] prop (K tac)
       end;