src/HOL/Tools/BNF/bnf_lfp_tactics.ML
changeset 62343 24106dc44def
parent 61841 4d3527b94f2a
child 62906 75ca185db27f
equal deleted inserted replaced
62342:1cf129590be8 62343:24106dc44def
   538   rtac ctxt trans, rtac ctxt foldx, rtac ctxt sym, rtac ctxt o_apply] 1;
   538   rtac ctxt trans, rtac ctxt foldx, rtac ctxt sym, rtac ctxt o_apply] 1;
   539 
   539 
   540 fun mk_ctor_set_tac ctxt set set_map set_maps =
   540 fun mk_ctor_set_tac ctxt set set_map set_maps =
   541   let
   541   let
   542     val n = length set_maps;
   542     val n = length set_maps;
   543     fun mk_UN thm = rtac ctxt (thm RS @{thm arg_cong[of _ _ Union]} RS trans) THEN'
   543     fun mk_UN thm = rtac ctxt (thm RS @{thm arg_cong[of _ _ Union]} RS trans)
   544       rtac ctxt @{thm Union_image_eq};
   544       THEN' rtac ctxt @{thm refl};
   545   in
   545   in
   546     EVERY' [rtac ctxt (set RS @{thm comp_eq_dest} RS trans), rtac ctxt Un_cong,
   546     EVERY' [rtac ctxt (set RS @{thm comp_eq_dest} RS trans), rtac ctxt Un_cong,
   547       rtac ctxt (trans OF [set_map, trans_fun_cong_image_id_id_apply]),
   547       rtac ctxt (trans OF [set_map, trans_fun_cong_image_id_id_apply]),
   548       REPEAT_DETERM_N (n - 1) o rtac ctxt Un_cong,
   548       REPEAT_DETERM_N (n - 1) o rtac ctxt Un_cong,
   549       EVERY' (map mk_UN set_maps)] 1
   549       EVERY' (map mk_UN set_maps)] 1