src/HOL/Auth/Event.thy
changeset 59498 50b60f501b05
parent 58963 26bf09b95dda
child 60754 02924903a6fd
equal deleted inserted replaced
59497:0c5cd369a643 59498:50b60f501b05
   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   rtac @{thm analz_impI} THEN' 
   275   REPEAT1 o (dresolve_tac @{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 = {*
   280     Scan.succeed (fn ctxt => SIMPLE_METHOD (REPEAT_FIRST (analz_mono_contra_tac ctxt))) *}
   280     Scan.succeed (fn ctxt => SIMPLE_METHOD (REPEAT_FIRST (analz_mono_contra_tac ctxt))) *}
   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   rtac @{thm syan_impI} THEN'
   291   REPEAT1 o 
   291   REPEAT1 o 
   292     (dresolve_tac 
   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}])
   296   THEN'
   296   THEN'
   297   mp_tac ctxt
   297   mp_tac ctxt