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