src/HOL/Auth/Event.thy
changeset 76287 cdc14f94c754
parent 69597 ff784d5a5bfb
child 76299 0ad6f6508274
equal deleted inserted replaced
76280:e381884c09d4 76287:cdc14f94c754
   184 
   184 
   185 
   185 
   186 text\<open>What agents DIFFERENT FROM Spy know 
   186 text\<open>What agents DIFFERENT FROM Spy know 
   187   was either said, or noted, or got, or known initially\<close>
   187   was either said, or noted, or got, or known initially\<close>
   188 lemma knows_imp_Says_Gets_Notes_initState [rule_format]:
   188 lemma knows_imp_Says_Gets_Notes_initState [rule_format]:
   189      "[| X \<in> knows A evs; A \<noteq> Spy |] ==> \<exists> B.
   189      "\<lbrakk>X \<in> knows A evs; A \<noteq> Spy\<rbrakk> \<Longrightarrow> \<exists> B.
   190   Says A B X \<in> set evs \<or> Gets A X \<in> set evs \<or> Notes A X \<in> set evs \<or> X \<in> initState A"
   190   Says A B X \<in> set evs \<or> Gets A X \<in> set evs \<or> Notes A X \<in> set evs \<or> X \<in> initState A"
   191 apply (erule rev_mp)
   191 apply (erule rev_mp)
   192 apply (induct_tac "evs")
   192 apply (induct_tac "evs")
   193 apply (simp_all (no_asm_simp) split: event.split)
   193 apply (simp_all (no_asm_simp) split: event.split)
   194 apply blast
   194 apply blast
   256 done
   256 done
   257 
   257 
   258 
   258 
   259 text\<open>For proving \<open>new_keys_not_used\<close>\<close>
   259 text\<open>For proving \<open>new_keys_not_used\<close>\<close>
   260 lemma keysFor_parts_insert:
   260 lemma keysFor_parts_insert:
   261      "[| K \<in> keysFor (parts (insert X G));  X \<in> synth (analz H) |] 
   261      "\<lbrakk>K \<in> keysFor (parts (insert X G));  X \<in> synth (analz H)\<rbrakk> 
   262       ==> K \<in> keysFor (parts (G \<union> H)) | Key (invKey K) \<in> parts H"
   262       \<Longrightarrow> K \<in> keysFor (parts (G \<union> H)) | Key (invKey K) \<in> parts H"
   263 by (force 
   263 by (force 
   264     dest!: parts_insert_subset_Un [THEN keysFor_mono, THEN [2] rev_subsetD]
   264     dest!: parts_insert_subset_Un [THEN keysFor_mono, THEN [2] rev_subsetD]
   265            analz_subset_parts [THEN keysFor_mono, THEN [2] rev_subsetD]
   265            analz_subset_parts [THEN keysFor_mono, THEN [2] rev_subsetD]
   266     intro: analz_subset_parts [THEN subsetD] parts_mono [THEN [2] rev_subsetD])
   266     intro: analz_subset_parts [THEN subsetD] parts_mono [THEN [2] rev_subsetD])
   267 
   267