Finished the example
authorpaulson
Wed, 05 Aug 1998 18:21:09 +0200
changeset 5258 d1c0504d6c42
parent 5257 c03e3ba9cbcc
child 5259 86d80749453f
Finished the example
src/HOL/UNITY/Handshake.ML
--- a/src/HOL/UNITY/Handshake.ML	Wed Aug 05 18:20:25 1998 +0200
+++ b/src/HOL/UNITY/Handshake.ML	Wed Aug 05 18:21:09 1998 +0200
@@ -45,18 +45,17 @@
 qed "lemma2_2";
 
 
-Goal "LeadsTo (Join prgF prgG) {s. NF s = k} {s. k < NF s}";
+Goal "LeadsTo (Join prgF prgG) UNIV {s. m < NF s}";
+br LeadsTo_weaken_R 1;
+by (res_inst_tac [("f", "NF"), ("l","Suc m"), ("B","{}")] 
+    R_greaterThan_bounded_induct 1);
+by (auto_tac (claset(), simpset() addsimps [vimage_def]));
+by (trans_tac 2);
+(*The inductive step: LeadsTo (Join prgF prgG) {x. NF x = ma} {x. ma < NF x}*)
 br LeadsTo_Diff 1;
 br lemma2_2 2;
 br LeadsTo_Trans 1;
 br lemma2_2 2;
 br (lemma2_1 RS LeadsTo_weaken_L) 1;
 by Auto_tac;
-val lemma = result();
-
-
-Goal "LeadsTo (Join prgF prgG) UNIV {s. m < NF s}";
-by (res_inst_tac [("f", "NF")] R_lessThan_induct 1);
-auto();
-br (lemma RS LeadsTo_weaken) 1;
-auto();
+qed "progress";