New version of axiom sees1_Says:
authorpaulson
Wed, 09 Oct 1996 13:43:51 +0200
changeset 2078 b198b3d46fb4
parent 2077 477e80fe0e9b
child 2079 8f0d199373a3
New version of axiom sees1_Says: Previously it only allowed the SENDER to see the content of messages... Now instead the RECIPIENT sees the messages. This change had no effect on subsequent proofs because protocol rules refer specifically to the relevant messages sent to an agent.
src/HOL/Auth/Shared.ML
src/HOL/Auth/Shared.thy
--- a/src/HOL/Auth/Shared.ML	Wed Oct 09 13:39:25 1996 +0200
+++ b/src/HOL/Auth/Shared.ML	Wed Oct 09 13:43:51 1996 +0200
@@ -125,17 +125,17 @@
 
 (** Specialized rewrite rules for (sees lost A (Says...#evs)) **)
 
-goal thy "sees lost A (Says A B X # evs) = insert X (sees lost A evs)";
+goal thy "sees lost B (Says A B X # evs) = insert X (sees lost B evs)";
 by (Simp_tac 1);
 qed "sees_own";
 
-goal thy "!!A. Server ~= A ==> \
-\              sees lost Server (Says A B X # evs) = sees lost Server evs";
+goal thy "!!A. Server ~= B ==> \
+\          sees lost Server (Says A B X # evs) = sees lost Server evs";
 by (Asm_simp_tac 1);
 qed "sees_Server";
 
-goal thy "!!A. Friend i ~= A ==> \
-\              sees lost (Friend i) (Says A B X # evs) = sees lost (Friend i) evs";
+goal thy "!!A. Friend i ~= B ==> \
+\          sees lost (Friend i) (Says A B X # evs) = sees lost (Friend i) evs";
 by (Asm_simp_tac 1);
 qed "sees_Friend";
 
@@ -169,8 +169,7 @@
 qed_spec_mp "Says_imp_sees_Spy";
 
 goal thy  
- "!!evs. [| Says A B (Crypt X (shrK C)) : set_of_list evs;        \
-\           C   : lost |]                                         \
+ "!!evs. [| Says A B (Crypt X (shrK C)) : 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);
@@ -190,8 +189,7 @@
 qed "initState_subset";
 
 goal thy "X : sees lost C evs --> \
-\          (EX A B. Says A B X : set_of_list evs) | \
-\          (EX A. X = Key (shrK A))";
+\          (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 (fast_tac (!claset addDs [impOfSubs initState_subset]) 1);
--- a/src/HOL/Auth/Shared.thy	Wed Oct 09 13:39:25 1996 +0200
+++ b/src/HOL/Auth/Shared.thy	Wed Oct 09 13:43:51 1996 +0200
@@ -33,10 +33,8 @@
   sees1 :: [agent, event] => msg set
 
 primrec sees1 event
-           (*First agent recalls all that it says, but NOT everything
-             that is sent to it; it must note such things if/when received*)
-  sees1_Says  "sees1 A (Says A' B X)  = (if A:{A',Spy} then {X} else {})"
-          (*part of A's internal state*)
+           (*Spy reads all traffic whether addressed to him or not*)
+  sees1_Says  "sees1 A (Says A' B X)  = (if A:{B,Spy} then {X} else {})"
 
 consts  
   sees :: [agent set, agent, event list] => msg set