1.1 --- a/src/HOL/Tools/BNF/bnf_fp_def_sugar_tactics.ML Fri Jul 25 11:26:11 2014 +0200
1.2 +++ b/src/HOL/Tools/BNF/bnf_fp_def_sugar_tactics.ML Fri Jul 25 11:26:11 2014 +0200
1.3 @@ -233,13 +233,13 @@
1.4 fun mk_rel_coinduct0_tac ctxt dtor_rel_coinduct cts assms exhausts discss selss ctor_defss
1.5 dtor_ctors ctor_injects abs_injects rel_pre_defs abs_inverses nesting_rel_eqs =
1.6 rtac dtor_rel_coinduct 1 THEN
1.7 - EVERY (map11 (fn ct => fn assm => fn exhaust => fn discs => fn sels => fn ctor_defs =>
1.8 - fn dtor_ctor => fn ctor_inject => fn abs_inject => fn rel_pre_def => fn abs_inverse =>
1.9 - rtac exhaust THEN_ALL_NEW (rtac exhaust THEN_ALL_NEW
1.10 - (dtac (rotate_prems (~1)
1.11 - (cterm_instantiate_pos [NONE, NONE, NONE, NONE, SOME ct] @{thm arg_cong2} RS iffD1)) THEN'
1.12 - atac THEN' atac THEN' hyp_subst_tac ctxt THEN' dtac assm THEN'
1.13 - REPEAT_DETERM o etac conjE)) 1 THEN
1.14 + EVERY (map11 (fn ct => fn assm => fn exhaust => fn discs => fn sels => fn ctor_defs =>
1.15 + fn dtor_ctor => fn ctor_inject => fn abs_inject => fn rel_pre_def => fn abs_inverse =>
1.16 + (rtac exhaust THEN_ALL_NEW (rtac exhaust THEN_ALL_NEW
1.17 + (dtac (rotate_prems (~1) (cterm_instantiate_pos [NONE, NONE, NONE, NONE, SOME ct]
1.18 + @{thm arg_cong2} RS iffD1)) THEN'
1.19 + atac THEN' atac THEN' hyp_subst_tac ctxt THEN' dtac assm THEN'
1.20 + REPEAT_DETERM o etac conjE))) 1 THEN
1.21 unfold_thms_tac ctxt ((discs RL [eqTrueI, eqFalseI]) @ sels @ simp_thms') THEN
1.22 unfold_thms_tac ctxt (dtor_ctor :: rel_pre_def :: abs_inverse :: ctor_inject ::
1.23 abs_inject :: ctor_defs @ nesting_rel_eqs @ simp_thms' @ @{thms BNF_Comp.id_bnf_comp_def