equal
deleted
inserted
replaced
63 definition keysFor :: "msg set \<Rightarrow> key set" where |
63 definition keysFor :: "msg set \<Rightarrow> key set" where |
64 \<comment> \<open>Keys useful to decrypt elements of a message set\<close> |
64 \<comment> \<open>Keys useful to decrypt elements of a message set\<close> |
65 "keysFor H == invKey ` {K. \<exists>X. Crypt K X \<in> H}" |
65 "keysFor H == invKey ` {K. \<exists>X. Crypt K X \<in> H}" |
66 |
66 |
67 |
67 |
68 subsubsection\<open>Inductive Definition of All Parts" of a Message\<close> |
68 subsection\<open>Inductive Definition of All Parts of a Message\<close> |
69 |
69 |
70 inductive_set |
70 inductive_set |
71 parts :: "msg set \<Rightarrow> msg set" |
71 parts :: "msg set \<Rightarrow> msg set" |
72 for H :: "msg set" |
72 for H :: "msg set" |
73 where |
73 where |
94 |
94 |
95 lemma Nonce_Key_image_eq [simp]: "(Nonce x \<notin> Key`A)" |
95 lemma Nonce_Key_image_eq [simp]: "(Nonce x \<notin> Key`A)" |
96 by auto |
96 by auto |
97 |
97 |
98 |
98 |
99 subsubsection\<open>Inverse of keys\<close> |
99 subsection\<open>Inverse of keys\<close> |
100 |
100 |
101 lemma invKey_eq [simp]: "(invKey K = invKey K') = (K=K')" |
101 lemma invKey_eq [simp]: "(invKey K = invKey K') = (K=K')" |
102 by (metis invKey) |
102 by (metis invKey) |
103 |
103 |
104 |
104 |
105 subsection\<open>keysFor operator\<close> |
105 subsection\<open>The @{term keysFor} operator\<close> |
106 |
106 |
107 lemma keysFor_empty [simp]: "keysFor {} = {}" |
107 lemma keysFor_empty [simp]: "keysFor {} = {}" |
108 unfolding keysFor_def by blast |
108 unfolding keysFor_def by blast |
109 |
109 |
110 lemma keysFor_Un [simp]: "keysFor (H \<union> H') = keysFor H \<union> keysFor H'" |
110 lemma keysFor_Un [simp]: "keysFor (H \<union> H') = keysFor H \<union> keysFor H'" |