src/HOL/Auth/Recur.ML
changeset 3961 6a8996fb7d99
parent 3919 c036caebfc75
child 4091 771b1f6422a8
--- a/src/HOL/Auth/Recur.ML	Tue Oct 21 10:36:23 1997 +0200
+++ b/src/HOL/Auth/Recur.ML	Tue Oct 21 10:39:27 1997 +0200
@@ -192,10 +192,10 @@
 	      addss  (!simpset addsimps [parts_insert_spies])) 2);
 (*Fake*)
 by (best_tac
-      (!claset addIs [impOfSubs analz_subset_parts]
-               addDs [impOfSubs (analz_subset_parts RS keysFor_mono),
-                      impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
-               addss (!simpset)) 1);
+      (!claset addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono)]
+               addIs  [impOfSubs analz_subset_parts]
+               addDs  [impOfSubs (analz_subset_parts RS keysFor_mono)]
+               addss  (!simpset)) 1);
 qed_spec_mp "new_keys_not_used";
 
 
@@ -263,7 +263,7 @@
 *)
 bind_thm ("resp_analz_image_freshK",
           raw_analz_image_freshK RSN
-            (2, resp_analz_image_freshK_lemma) RS spec RS spec);
+            (2, resp_analz_image_freshK_lemma) RS spec RS spec RS mp);
 
 goal thy
  "!!evs. [| evs : recur;  KAB ~: range shrK |] ==>              \
@@ -422,25 +422,26 @@
 by (etac respond.induct 1);
 by (forward_tac [respond_imp_responses] 2);
 by (forward_tac [respond_imp_not_used] 2);
-by (ALLGOALS (*12 seconds*)
+by (ALLGOALS (*6 seconds*)
     (asm_simp_tac 
-     (analz_image_freshK_ss addsimps 
-       [shrK_in_analz_respond, resp_analz_image_freshK, parts_insert2])));
+     (analz_image_freshK_ss 
+        addsimps expand_ifs
+	addsimps 
+          [shrK_in_analz_respond, resp_analz_image_freshK, parts_insert2])));
 by (ALLGOALS (simp_tac (!simpset addsimps [ex_disj_distrib])));
 (** LEVEL 5 **)
 by (blast_tac (!claset addIs [impOfSubs analz_subset_parts]) 1);
-by (safe_tac (!claset addSEs [MPair_parts]));
-by (REPEAT (blast_tac (!claset addSDs [respond_certificate]
-		               addDs [resp_analz_insert]
-			       addIs  [impOfSubs analz_subset_parts]) 4));
-by (Blast_tac 3);
-by (blast_tac (!claset addSEs partsEs
-                       addDs [Key_in_parts_respond]) 2);
-(*by unicity, either B=Aa or B=A', a contradiction since B: bad*)
-by (dtac unique_session_keys 1);
-by (etac respond_certificate 1);
-by (assume_tac 1);
-by (Blast_tac 1);
+by (REPEAT_FIRST (resolve_tac [allI, conjI, impI]));
+by (ALLGOALS Clarify_tac);
+by (blast_tac (!claset addSDs  [resp_analz_insert]
+		       addIs  [impOfSubs analz_subset_parts]) 2);
+by (blast_tac (!claset addSDs [respond_certificate]) 1);
+by (Asm_full_simp_tac 1);
+(*by unicity, either B=Aa or B=A', a contradiction if B: bad*)
+by (blast_tac
+    (!claset addSEs [MPair_parts]
+	     addDs [parts.Body,
+		    respond_certificate RSN (2, unique_session_keys)]) 1);
 qed_spec_mp "respond_Spy_not_see_session_key";
 
 
@@ -453,9 +454,9 @@
 by analz_spies_tac;
 by (ALLGOALS
     (asm_simp_tac
-     (!simpset addsimps [analz_insert_eq, parts_insert_spies, 
-			 analz_insert_freshK] 
-               addsplits [expand_if])));
+     (!simpset addsimps (expand_ifs @
+			 [analz_insert_eq, parts_insert_spies, 
+			  analz_insert_freshK]))));
 (*RA4*)
 by (spy_analz_tac 5);
 (*RA2*)