135 forward_tac [@{thm OR4_parts_knows_Spy}] (i+6) THEN |
135 forward_tac [@{thm OR4_parts_knows_Spy}] (i+6) THEN |
136 forward_tac [@{thm OR2_parts_knows_Spy}] (i+4) |
136 forward_tac [@{thm OR2_parts_knows_Spy}] (i+4) |
137 *} |
137 *} |
138 |
138 |
139 method_setup parts_explicit = {* |
139 method_setup parts_explicit = {* |
140 Method.no_args (Method.SIMPLE_METHOD' parts_explicit_tac) *} |
140 Method.no_args (SIMPLE_METHOD' parts_explicit_tac) *} |
141 "to explicitly state that some message components belong to parts knows Spy" |
141 "to explicitly state that some message components belong to parts knows Spy" |
142 |
142 |
143 |
143 |
144 lemma Spy_see_shrK [simp]: |
144 lemma Spy_see_shrK [simp]: |
145 "evs \<in> orb \<Longrightarrow> (Key (shrK A) \<in> parts (knows Spy evs)) = (A \<in> bad)" |
145 "evs \<in> orb \<Longrightarrow> (Key (shrK A) \<in> parts (knows Spy evs)) = (A \<in> bad)" |
256 end |
256 end |
257 *} |
257 *} |
258 |
258 |
259 method_setup analz_freshCryptK = {* |
259 method_setup analz_freshCryptK = {* |
260 Method.ctxt_args (fn ctxt => |
260 Method.ctxt_args (fn ctxt => |
261 (Method.SIMPLE_METHOD |
261 (SIMPLE_METHOD |
262 (EVERY [REPEAT_FIRST (resolve_tac [allI, ballI, impI]), |
262 (EVERY [REPEAT_FIRST (resolve_tac [allI, ballI, impI]), |
263 REPEAT_FIRST (rtac @{thm analz_image_freshCryptK_lemma}), |
263 REPEAT_FIRST (rtac @{thm analz_image_freshCryptK_lemma}), |
264 ALLGOALS (asm_simp_tac |
264 ALLGOALS (asm_simp_tac |
265 (Simplifier.context ctxt OtwayReesBella.analz_image_freshK_ss))]))) *} |
265 (Simplifier.context ctxt OtwayReesBella.analz_image_freshK_ss))]))) *} |
266 "for proving useful rewrite rule" |
266 "for proving useful rewrite rule" |
267 |
267 |
268 |
268 |
269 method_setup disentangle = {* |
269 method_setup disentangle = {* |
270 Method.no_args |
270 Method.no_args |
271 (Method.SIMPLE_METHOD |
271 (SIMPLE_METHOD |
272 (REPEAT_FIRST (eresolve_tac [asm_rl, conjE, disjE] |
272 (REPEAT_FIRST (eresolve_tac [asm_rl, conjE, disjE] |
273 ORELSE' hyp_subst_tac))) *} |
273 ORELSE' hyp_subst_tac))) *} |
274 "for eliminating conjunctions, disjunctions and the like" |
274 "for eliminating conjunctions, disjunctions and the like" |
275 |
275 |
276 |
276 |