src/HOL/Auth/Message.thy
changeset 76299 0ad6f6508274
parent 76291 616405057951
child 76338 e4fa45571bab
equal deleted inserted replaced
76298:efc220128637 76299:0ad6f6508274
    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'"