equal
deleted
inserted
replaced
269 lemmas analz_impI = impI [where P = "Y \<notin> analz (knows Spy evs)"] for Y evs |
269 lemmas analz_impI = impI [where P = "Y \<notin> analz (knows Spy evs)"] for Y evs |
270 |
270 |
271 ML |
271 ML |
272 {* |
272 {* |
273 fun analz_mono_contra_tac ctxt = |
273 fun analz_mono_contra_tac ctxt = |
274 rtac @{thm analz_impI} THEN' |
274 resolve_tac ctxt @{thms analz_impI} THEN' |
275 REPEAT1 o (dresolve_tac ctxt @{thms analz_mono_contra}) |
275 REPEAT1 o (dresolve_tac ctxt @{thms analz_mono_contra}) |
276 THEN' (mp_tac ctxt) |
276 THEN' (mp_tac ctxt) |
277 *} |
277 *} |
278 |
278 |
279 method_setup analz_mono_contra = {* |
279 method_setup analz_mono_contra = {* |
285 lemmas syan_impI = impI [where P = "Y \<notin> synth (analz (knows Spy evs))"] for Y evs |
285 lemmas syan_impI = impI [where P = "Y \<notin> synth (analz (knows Spy evs))"] for Y evs |
286 |
286 |
287 ML |
287 ML |
288 {* |
288 {* |
289 fun synth_analz_mono_contra_tac ctxt = |
289 fun synth_analz_mono_contra_tac ctxt = |
290 rtac @{thm syan_impI} THEN' |
290 resolve_tac ctxt @{thms syan_impI} THEN' |
291 REPEAT1 o |
291 REPEAT1 o |
292 (dresolve_tac ctxt |
292 (dresolve_tac ctxt |
293 [@{thm knows_Spy_subset_knows_Spy_Says} RS @{thm synth_analz_mono} RS @{thm contra_subsetD}, |
293 [@{thm knows_Spy_subset_knows_Spy_Says} RS @{thm synth_analz_mono} RS @{thm contra_subsetD}, |
294 @{thm knows_Spy_subset_knows_Spy_Notes} RS @{thm synth_analz_mono} RS @{thm contra_subsetD}, |
294 @{thm knows_Spy_subset_knows_Spy_Notes} RS @{thm synth_analz_mono} RS @{thm contra_subsetD}, |
295 @{thm knows_Spy_subset_knows_Spy_Gets} RS @{thm synth_analz_mono} RS @{thm contra_subsetD}]) |
295 @{thm knows_Spy_subset_knows_Spy_Gets} RS @{thm synth_analz_mono} RS @{thm contra_subsetD}]) |