Revised wf_acc_iff and Co.
authornipkow
Tue, 29 Sep 1998 12:01:12 +0200
changeset 5580 354f4914811f
parent 5579 32f99ca617b7
child 5581 295bb029170c
Revised wf_acc_iff and Co.
src/HOL/Induct/Acc.ML
--- a/src/HOL/Induct/Acc.ML	Tue Sep 29 12:00:52 1998 +0200
+++ b/src/HOL/Induct/Acc.ML	Tue Sep 29 12:01:12 1998 +0200
@@ -43,28 +43,17 @@
 by (etac (Int_lower1 RS Pow_mono RS subsetD) 1);
 qed "acc_induct";
 
-
-Goal "r <= (acc r) Times (acc r) ==> wf(r)";
-by (etac wfI 1);
-by (etac acc.induct 1);
-by (rewtac pred_def);
-by (Fast_tac 1);
+Goal "!x. x : acc(r) ==> wf(r)";
+by (rtac wfUNIVI 1);
+by(deepen_tac (claset() addEs [acc_induct]) 1 1);
 qed "acc_wfI";
 
-Goal "wf(r) ==> ALL x. (x,y): r | (y,x):r --> y: acc(r)";
+Goal "wf(r) ==> x : acc(r)";
 by (etac wf_induct 1);
-by (rtac (impI RS allI) 1);
 by (rtac accI 1);
-by (Fast_tac 1);
-qed "acc_wfD_lemma";
-
-Goal "wf(r) ==> r <= (acc r) Times (acc r)";
-by (rtac subsetI 1);
-by (res_inst_tac [("p", "x")] PairE 1);
-by (fast_tac (claset() addSIs [SigmaI,
-			       acc_wfD_lemma RS spec RS mp]) 1);
+by (Blast_tac 1);
 qed "acc_wfD";
 
-Goal "wf(r)  =  (r <= (acc r) Times (acc r))";
-by (EVERY1 [rtac iffI, etac acc_wfD, etac acc_wfI]);
+Goal "wf(r)  =  (!x. x : acc(r))";
+by (blast_tac (claset() addIs [acc_wfI] addDs [acc_wfD]) 1);
 qed "wf_acc_iff";