src/HOL/BNF/Tools/bnf_def_tactics.ML
changeset 54998 8601434fa334
parent 54841 af71b753c459
equal deleted inserted replaced
54997:811c35e81ac5 54998:8601434fa334
   184   end;
   184   end;
   185 
   185 
   186 fun mk_rel_mono_strong_tac in_rel set_maps {context = ctxt, prems = _} =
   186 fun mk_rel_mono_strong_tac in_rel set_maps {context = ctxt, prems = _} =
   187   if null set_maps then atac 1
   187   if null set_maps then atac 1
   188   else
   188   else
   189     unfold_tac [in_rel] ctxt THEN
   189     unfold_tac ctxt [in_rel] THEN
   190     REPEAT_DETERM (eresolve_tac [exE, CollectE, conjE] 1) THEN
   190     REPEAT_DETERM (eresolve_tac [exE, CollectE, conjE] 1) THEN
   191     hyp_subst_tac ctxt 1 THEN
   191     hyp_subst_tac ctxt 1 THEN
   192     unfold_tac set_maps ctxt THEN
   192     unfold_tac ctxt set_maps THEN
   193     EVERY' [rtac exI, rtac @{thm conjI[OF CollectI conjI[OF refl refl]]},
   193     EVERY' [rtac exI, rtac @{thm conjI[OF CollectI conjI[OF refl refl]]},
   194       CONJ_WRAP' (K (etac @{thm Collect_split_mono_strong} THEN' atac)) set_maps] 1;
   194       CONJ_WRAP' (K (etac @{thm Collect_split_mono_strong} THEN' atac)) set_maps] 1;
   195 
   195 
   196 fun mk_map_transfer_tac rel_mono in_rel set_maps map_cong0 map_comp
   196 fun mk_map_transfer_tac rel_mono in_rel set_maps map_cong0 map_comp
   197   {context = ctxt, prems = _} =
   197   {context = ctxt, prems = _} =