src/HOL/Auth/OtwayRees_AN.ML
changeset 3451 d10f100676d8
parent 3207 fe79ad367d77
child 3465 e85c24717cad
equal deleted inserted replaced
3450:cd73bc206d87 3451:d10f100676d8
   177 \            (K : KK | Key K : analz (sees lost Spy evs))";
   177 \            (K : KK | Key K : analz (sees lost Spy evs))";
   178 by (etac otway.induct 1);
   178 by (etac otway.induct 1);
   179 by analz_sees_tac;
   179 by analz_sees_tac;
   180 by (REPEAT_FIRST (resolve_tac [allI, impI]));
   180 by (REPEAT_FIRST (resolve_tac [allI, impI]));
   181 by (REPEAT_FIRST (rtac analz_image_freshK_lemma ));
   181 by (REPEAT_FIRST (rtac analz_image_freshK_lemma ));
   182 (*14 seconds*)
       
   183 by (ALLGOALS (asm_simp_tac analz_image_freshK_ss));
   182 by (ALLGOALS (asm_simp_tac analz_image_freshK_ss));
   184 (*OR4, Fake*) 
   183 (*Fake*) 
   185 by (EVERY (map spy_analz_tac [3,2]));
   184 by (spy_analz_tac 2);
   186 (*Base*)
   185 (*Base*)
   187 by (Blast_tac 1);
   186 by (Blast_tac 1);
   188 qed_spec_mp "analz_image_freshK";
   187 qed_spec_mp "analz_image_freshK";
   189 
   188 
   190 
   189 
   283 \            Key K ~: analz (sees lost Spy evs)";
   282 \            Key K ~: analz (sees lost Spy evs)";
   284 by (etac otway.induct 1);
   283 by (etac otway.induct 1);
   285 by analz_sees_tac;
   284 by analz_sees_tac;
   286 by (ALLGOALS
   285 by (ALLGOALS
   287     (asm_simp_tac (!simpset addcongs [conj_cong] 
   286     (asm_simp_tac (!simpset addcongs [conj_cong] 
   288                             addsimps [not_parts_not_analz,
   287                             addsimps [analz_insert_eq, not_parts_not_analz, 
   289                                       analz_insert_freshK]
   288 				      analz_insert_freshK]
   290                             setloop split_tac [expand_if])));
   289                             setloop split_tac [expand_if])));
       
   290 (*Oops*)
       
   291 by (blast_tac (!claset addSDs [unique_session_keys]) 4);
       
   292 (*OR4*) 
       
   293 by (Blast_tac 3);
   291 (*OR3*)
   294 (*OR3*)
   292 by (blast_tac (!claset addSEs sees_Spy_partsEs
   295 by (blast_tac (!claset addSEs sees_Spy_partsEs
   293                        addIs [impOfSubs analz_subset_parts]) 2);
   296                        addIs [impOfSubs analz_subset_parts]) 2);
   294 (*Oops*) 
   297 (*Fake*) 
   295 by (blast_tac (!claset addDs [unique_session_keys]) 3);
   298 by (spy_analz_tac 1);
   296 (*OR4, Fake*) 
       
   297 by (REPEAT_FIRST spy_analz_tac);
       
   298 val lemma = result() RS mp RS mp RSN(2,rev_notE);
   299 val lemma = result() RS mp RS mp RSN(2,rev_notE);
   299 
   300 
   300 goal thy 
   301 goal thy 
   301  "!!evs. [| Says Server B                                           \
   302  "!!evs. [| Says Server B                                           \
   302 \              {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|},    \
   303 \              {|Crypt (shrK A) {|NA, Agent A, Agent B, Key K|},    \