equal
deleted
inserted
replaced
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 |