equal
deleted
inserted
replaced
25 by (rtac (ns_shared.Nil RS ns_shared.NS1 RS ns_shared.NS2 RS |
25 by (rtac (ns_shared.Nil RS ns_shared.NS1 RS ns_shared.NS2 RS |
26 ns_shared.NS3 RS ns_shared.NS4 RS ns_shared.NS5) 2); |
26 ns_shared.NS3 RS ns_shared.NS4 RS ns_shared.NS5) 2); |
27 by possibility_tac; |
27 by possibility_tac; |
28 result(); |
28 result(); |
29 |
29 |
|
30 goal thy |
|
31 "!!A B. [| A ~= B; A ~= Server; B ~= Server |] \ |
|
32 \ ==> EX evs: ns_shared. \ |
|
33 \ Says A B (Crypt ?K {|Nonce ?N, Nonce ?N|}) : set evs"; |
|
34 by (REPEAT (resolve_tac [exI,bexI] 1)); |
|
35 by (rtac (ns_shared.Nil RS ns_shared.NS1 RS ns_shared.NS2 RS |
|
36 ns_shared.NS3 RS ns_shared.NS4 RS ns_shared.NS5) 2); |
|
37 by possibility_tac; |
30 |
38 |
31 (**** Inductive proofs about ns_shared ****) |
39 (**** Inductive proofs about ns_shared ****) |
32 |
40 |
33 (*Nobody sends themselves messages*) |
41 (*Nobody sends themselves messages*) |
34 goal thy "!!evs. evs : ns_shared ==> ALL A X. Says A A X ~: set evs"; |
42 goal thy "!!evs. evs : ns_shared ==> ALL A X. Says A A X ~: set evs"; |
262 \ Key K ~: analz (sees Spy evs)"; |
270 \ Key K ~: analz (sees Spy evs)"; |
263 by (etac ns_shared.induct 1); |
271 by (etac ns_shared.induct 1); |
264 by analz_sees_tac; |
272 by analz_sees_tac; |
265 by (ALLGOALS |
273 by (ALLGOALS |
266 (asm_simp_tac |
274 (asm_simp_tac |
267 (!simpset addsimps ([analz_insert_eq, not_parts_not_analz, |
275 (!simpset addsimps ([analz_insert_eq, analz_insert_freshK] @ pushes) |
268 analz_insert_freshK] @ pushes) |
|
269 setloop split_tac [expand_if]))); |
276 setloop split_tac [expand_if]))); |
270 (*Oops*) |
277 (*Oops*) |
271 by (blast_tac (!claset addDs [unique_session_keys]) 5); |
278 by (blast_tac (!claset addDs [unique_session_keys]) 5); |
272 (*NS4*) |
279 (*NS4*) |
273 by (Blast_tac 4); |
280 by (Blast_tac 4); |