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