src/HOL/Auth/Shared.ML
changeset 4509 828148415197
parent 4477 b3e5857d8d99
child 4633 d4a074973715
equal deleted inserted replaced
4508:f102cb0140fe 4509:828148415197
    25 goalw thy [keysFor_def] "keysFor (parts (initState C)) = {}";
    25 goalw thy [keysFor_def] "keysFor (parts (initState C)) = {}";
    26 by (induct_tac "C" 1);
    26 by (induct_tac "C" 1);
    27 by Auto_tac;
    27 by Auto_tac;
    28 qed "keysFor_parts_initState";
    28 qed "keysFor_parts_initState";
    29 Addsimps [keysFor_parts_initState];
    29 Addsimps [keysFor_parts_initState];
       
    30 
       
    31 (*Specialized to shared-key model: no need for addss in protocol proofs*)
       
    32 goal thy "!!X. [| K: keysFor (parts (insert X H));  X : synth (analz H) |] \
       
    33 \              ==> K : keysFor (parts H) | Key K : parts H";
       
    34 by (fast_tac
       
    35       (claset() addSDs [impOfSubs (parts_insert_subset_Un RS keysFor_mono),
       
    36 			impOfSubs (analz_subset_parts RS keysFor_mono)]
       
    37 		addIs  [impOfSubs analz_subset_parts]
       
    38                 addss  (simpset())) 1);
       
    39 qed "keysFor_parts_insert";
    30 
    40 
    31 goal thy "!!H. Crypt K X : H ==> K : keysFor H";
    41 goal thy "!!H. Crypt K X : H ==> K : keysFor H";
    32 by (dtac Crypt_imp_invKey_keysFor 1);
    42 by (dtac Crypt_imp_invKey_keysFor 1);
    33 by (Asm_full_simp_tac 1);
    43 by (Asm_full_simp_tac 1);
    34 qed "Crypt_imp_keysFor";
    44 qed "Crypt_imp_keysFor";