Now calls Blast_tac more often
authorpaulson
Mon, 05 Jan 1998 10:47:10 +0100
changeset 4515 44af72721564
parent 4514 78eda600f35d
child 4516 f90b2d459a1b
Now calls Blast_tac more often
src/ZF/WF.ML
--- a/src/ZF/WF.ML	Fri Jan 02 18:47:31 1998 +0100
+++ b/src/ZF/WF.ML	Mon Jan 05 10:47:10 1998 +0100
@@ -1,9 +1,9 @@
 (*  Title:      ZF/wf.ML
     ID:         $Id$
     Author:     Tobias Nipkow and Lawrence C Paulson
-    Copyright   1992  University of Cambridge
+    Copyright   1998  University of Cambridge
 
-For wf.thy.  Well-founded Recursion
+Well-founded Recursion
 
 Derived first for transitive relations, and finally for arbitrary WF relations
 via wf_trancl and trans_trancl.
@@ -25,6 +25,7 @@
 (** Equivalences between wf and wf_on **)
 
 goalw WF.thy [wf_def, wf_on_def] "!!A r. wf(r) ==> wf[A](r)";
+by (Clarify_tac 1);  (*essential for Blast_tac's efficiency*)
 by (Blast_tac 1);
 qed "wf_imp_wf_on";
 
@@ -37,11 +38,13 @@
 qed "wf_iff_wf_on_field";
 
 goalw WF.thy [wf_on_def, wf_def] "!!A B r. [| wf[A](r);  B<=A |] ==> wf[B](r)";
-by (Fast_tac 1);
+by (Clarify_tac 1);  (*essential for Blast_tac's efficiency*)
+by (Blast_tac 1);
 qed "wf_on_subset_A";
 
 goalw WF.thy [wf_on_def, wf_def] "!!A r s. [| wf[A](r);  s<=r |] ==> wf[A](s)";
-by (Fast_tac 1);
+by (Clarify_tac 1);  (*essential for Blast_tac's efficiency*)
+by (Blast_tac 1);
 qed "wf_on_subset_r";
 
 (** Introduction rules for wf_on **)
@@ -289,18 +292,19 @@
 by (REPEAT (ares_tac (prems @ [is_recfun_cut, unfold_the_recfun]) 1));
 qed "the_recfun_cut";
 
-(*NOT SUITABLE FOR REWRITING since it is recursive!*)
+(*NOT SUITABLE FOR REWRITING: it is recursive!*)
 goalw WF.thy [wftrec_def]
     "!!r. [| wf(r);  trans(r) |] ==> \
 \         wftrec(r,a,H) = H(a, lam x: r-``{a}. wftrec(r,x,H))";
 by (stac (rewrite_rule [is_recfun_def] unfold_the_recfun) 1);
-by (ALLGOALS (asm_simp_tac
-        (simpset() addsimps [vimage_singleton_iff RS iff_sym, the_recfun_cut])));
+by (ALLGOALS 
+    (asm_simp_tac
+     (simpset() addsimps [vimage_singleton_iff RS iff_sym, the_recfun_cut])));
 qed "wftrec";
 
 (** Removal of the premise trans(r) **)
 
-(*NOT SUITABLE FOR REWRITING since it is recursive!*)
+(*NOT SUITABLE FOR REWRITING: it is recursive!*)
 val [wfr] = goalw WF.thy [wfrec_def]
     "wf(r) ==> wfrec(r,a,H) = H(a, lam x:r-``{a}. wfrec(r,x,H))";
 by (stac (wfr RS wf_trancl RS wftrec) 1);