src/HOL/BNF/Tools/bnf_fp_def_sugar_tactics.ML
changeset 54742 7a86358a3c0b
parent 54241 357988ad95ec
child 54837 5bc637eb60c0
equal deleted inserted replaced
54741:010eefa0a4f3 54742:7a86358a3c0b
   128   let val r = length kks in
   128   let val r = length kks in
   129     HEADGOAL (EVERY' [select_prem_tac n (rotate_tac 1) k, rotate_tac ~1, hyp_subst_tac ctxt,
   129     HEADGOAL (EVERY' [select_prem_tac n (rotate_tac 1) k, rotate_tac ~1, hyp_subst_tac ctxt,
   130       REPEAT_DETERM_N m o (dtac meta_spec THEN' rotate_tac ~1)]) THEN
   130       REPEAT_DETERM_N m o (dtac meta_spec THEN' rotate_tac ~1)]) THEN
   131     EVERY [REPEAT_DETERM_N r
   131     EVERY [REPEAT_DETERM_N r
   132         (HEADGOAL (rotate_tac ~1 THEN' dtac meta_mp THEN' rotate_tac 1) THEN prefer_tac 2),
   132         (HEADGOAL (rotate_tac ~1 THEN' dtac meta_mp THEN' rotate_tac 1) THEN prefer_tac 2),
   133       if r > 0 then ALLGOALS Goal.norm_hhf_tac else all_tac, HEADGOAL atac,
   133       if r > 0 then ALLGOALS (Goal.norm_hhf_tac ctxt) else all_tac, HEADGOAL atac,
   134       mk_induct_leverage_prem_prems_tac ctxt nn kks set_maps pre_set_defs]
   134       mk_induct_leverage_prem_prems_tac ctxt nn kks set_maps pre_set_defs]
   135   end;
   135   end;
   136 
   136 
   137 fun mk_induct_tac ctxt nn ns mss kkss ctr_defs ctor_induct' set_maps pre_set_defss =
   137 fun mk_induct_tac ctxt nn ns mss kkss ctr_defs ctor_induct' set_maps pre_set_defss =
   138   let val n = Integer.sum ns in
   138   let val n = Integer.sum ns in