290 done |
290 done |
291 |
291 |
292 lemmas parts_spies_takeWhile_mono = spies_takeWhile [THEN parts_mono] |
292 lemmas parts_spies_takeWhile_mono = spies_takeWhile [THEN parts_mono] |
293 |
293 |
294 |
294 |
295 subsection\<open>Lemmas about @{term authKeys}\<close> |
295 subsection\<open>Lemmas about \<^term>\<open>authKeys\<close>\<close> |
296 |
296 |
297 lemma authKeys_empty: "authKeys [] = {}" |
297 lemma authKeys_empty: "authKeys [] = {}" |
298 apply (unfold authKeys_def) |
298 apply (unfold authKeys_def) |
299 apply (simp (no_asm)) |
299 apply (simp (no_asm)) |
300 done |
300 done |
1004 apply (erule rev_mp, erule kerbIV.induct, simp_all add: Unique_def) |
1004 apply (erule rev_mp, erule kerbIV.induct, simp_all add: Unique_def) |
1005 apply blast |
1005 apply blast |
1006 done |
1006 done |
1007 |
1007 |
1008 |
1008 |
1009 subsection\<open>Lemmas About the Predicate @{term AKcryptSK}\<close> |
1009 subsection\<open>Lemmas About the Predicate \<^term>\<open>AKcryptSK\<close>\<close> |
1010 |
1010 |
1011 lemma not_AKcryptSK_Nil [iff]: "\<not> AKcryptSK authK servK []" |
1011 lemma not_AKcryptSK_Nil [iff]: "\<not> AKcryptSK authK servK []" |
1012 by (simp add: AKcryptSK_def) |
1012 by (simp add: AKcryptSK_def) |
1013 |
1013 |
1014 lemma AKcryptSKI: |
1014 lemma AKcryptSKI: |
1342 apply (erule rev_mp) |
1342 apply (erule rev_mp) |
1343 apply (erule rev_mp) |
1343 apply (erule rev_mp) |
1344 apply (erule kerbIV.induct) |
1344 apply (erule kerbIV.induct) |
1345 apply (rule_tac [9] impI)+ |
1345 apply (rule_tac [9] impI)+ |
1346 \<comment> \<open>The Oops1 case is unusual: must simplify |
1346 \<comment> \<open>The Oops1 case is unusual: must simplify |
1347 @{term "Authkey \<notin> analz (spies (ev#evs))"}, not letting |
1347 \<^term>\<open>Authkey \<notin> analz (spies (ev#evs))\<close>, not letting |
1348 \<open>analz_mono_contra\<close> weaken it to |
1348 \<open>analz_mono_contra\<close> weaken it to |
1349 @{term "Authkey \<notin> analz (spies evs)"}, |
1349 \<^term>\<open>Authkey \<notin> analz (spies evs)\<close>, |
1350 for we then conclude @{term "authK \<noteq> authKa"}.\<close> |
1350 for we then conclude \<^term>\<open>authK \<noteq> authKa\<close>.\<close> |
1351 apply analz_mono_contra |
1351 apply analz_mono_contra |
1352 apply (frule_tac [10] Oops_range_spies2) |
1352 apply (frule_tac [10] Oops_range_spies2) |
1353 apply (frule_tac [9] Oops_range_spies1) |
1353 apply (frule_tac [9] Oops_range_spies1) |
1354 apply (frule_tac [7] Says_tgs_message_form) |
1354 apply (frule_tac [7] Says_tgs_message_form) |
1355 apply (frule_tac [5] Says_kas_message_form) |
1355 apply (frule_tac [5] Says_kas_message_form) |