Removed Says_Crypt_lost and Says_Crypt_not_lost.
authorpaulson
Wed, 18 Jun 1997 15:24:21 +0200
changeset 3443 387ca417e7f5
parent 3442 0b804b390b0e
child 3444 919de2cb3487
Removed Says_Crypt_lost and Says_Crypt_not_lost. Installed not_lost_tac. Deleted unused theorems initState_subset and seesD
src/HOL/Auth/Shared.ML
--- a/src/HOL/Auth/Shared.ML	Wed Jun 18 15:23:29 1997 +0200
+++ b/src/HOL/Auth/Shared.ML	Wed Jun 18 15:24:21 1997 +0200
@@ -97,12 +97,6 @@
 
 AddSIs [sees_own_shrK, Spy_sees_lost];
 
-(*Added for Yahalom/lost_tac*)
-goal thy "!!A. [| Crypt (shrK A) X : analz (sees lost Spy evs);  A: lost |] \
-\              ==> X : analz (sees lost Spy evs)";
-by (fast_tac (!claset addSDs [analz.Decrypt] addss (!simpset)) 1);
-qed "Crypt_Spy_analz_lost";
-
 (** Specialized rewrite rules for (sees lost A (Says...#evs)) **)
 
 goal thy "sees lost B (Says A B X # evs) = insert X (sees lost B evs)";
@@ -153,39 +147,23 @@
   items known to be fresh*)
 val sees_Spy_partsEs = make_elim (Says_imp_sees_Spy RS parts.Inj):: partsEs;
 
-goal thy  
- "!!evs. [| Says A B (Crypt (shrK C) X) : set_of_list evs;  C : lost |] \
-\        ==> X : analz (sees lost Spy evs)";
-by (fast_tac (!claset addSDs [Says_imp_sees_Spy RS analz.Inj]
-                      addss (!simpset)) 1);
-qed "Says_Crypt_lost";
-
-goal thy  
- "!!evs. [| Says A B (Crypt (shrK C) X) : set_of_list evs;        \
-\           X ~: analz (sees lost Spy evs) |]                     \
-\        ==> C ~: lost";
-by (fast_tac (!claset addSDs [Says_imp_sees_Spy RS analz.Inj]
-                      addss (!simpset)) 1);
-qed "Says_Crypt_not_lost";
+(*For not_lost_tac*)
+goal thy "!!A. [| Crypt (shrK A) X : analz (sees lost Spy evs);  A: lost |] \
+\              ==> X : analz (sees lost Spy evs)";
+by (fast_tac (!claset addSDs [analz.Decrypt] addss (!simpset)) 1);
+qed "Crypt_Spy_analz_lost";
 
-(*NEEDED??*)
-goal thy "initState lost C <= Key `` range shrK";
-by (agent.induct_tac "C" 1);
-by (Auto_tac ());
-qed "initState_subset";
-
-(*NEEDED??*)
-goal thy "X : sees lost C evs --> \
-\          (EX A B. Says A B X : set_of_list evs) | (EX A. X = Key (shrK A))";
-by (list.induct_tac "evs" 1);
-by (ALLGOALS Asm_simp_tac);
-by (blast_tac (!claset addDs [impOfSubs initState_subset]) 1);
-by (rtac conjI 1);
-by (Blast_tac 2);
-by (event.induct_tac "a" 1);
-by (ALLGOALS (asm_simp_tac (!simpset addsimps [mem_if])));
-by (ALLGOALS Blast_tac);
-qed_spec_mp "seesD";
+(*Prove that the agent is uncompromised by the confidentiality of 
+  a component of a message she's said.*)
+fun not_lost_tac s =
+    case_tac ("(" ^ s ^ ") : lost") THEN'
+    SELECT_GOAL 
+      (REPEAT_DETERM (dtac (Says_imp_sees_Spy RS analz.Inj) 1) THEN
+       REPEAT_DETERM (etac MPair_analz 1) THEN
+       THEN_BEST_FIRST 
+         (dres_inst_tac [("A", s)] Crypt_Spy_analz_lost 1 THEN assume_tac 1)
+         (has_fewer_prems 1, size_of_thm)
+         (Step_tac 1));
 
 Addsimps [sees_own, sees_Server, sees_Friend, sees_Spy];
 Delsimps [sees_Cons];   (**** NOTE REMOVAL -- laws above are cleaner ****)