src/HOL/Tools/BNF/bnf_gfp_rec_sugar_tactics.ML
changeset 59274 67afe7e6a516
parent 58956 a816aa3ff391
child 59498 50b60f501b05
equal deleted inserted replaced
59273:2c1e58190664 59274:67afe7e6a516
    78     resolve_tac @{thms TrueI conjI disjI1 disjI2} ORELSE'
    78     resolve_tac @{thms TrueI conjI disjI1 disjI2} ORELSE'
    79     dresolve_tac discIs THEN' atac ORELSE'
    79     dresolve_tac discIs THEN' atac ORELSE'
    80     etac notE THEN' atac ORELSE'
    80     etac notE THEN' atac ORELSE'
    81     etac disjE))));
    81     etac disjE))));
    82 
    82 
    83 val ss_fst_snd_conv = simpset_of (ss_only @{thms fst_conv snd_conv} @{context});
    83 fun ss_fst_snd_conv ctxt = simpset_of (ss_only @{thms fst_conv snd_conv} ctxt);
    84 
    84 
    85 fun case_atac ctxt = simp_tac (put_simpset ss_fst_snd_conv ctxt);
    85 fun case_atac ctxt = simp_tac (put_simpset (ss_fst_snd_conv ctxt) ctxt);
    86 
    86 
    87 fun same_case_tac ctxt m =
    87 fun same_case_tac ctxt m =
    88   HEADGOAL (if m = 0 then rtac TrueI
    88   HEADGOAL (if m = 0 then rtac TrueI
    89     else REPEAT_DETERM_N (m - 1) o (rtac conjI THEN' case_atac ctxt) THEN' case_atac ctxt);
    89     else REPEAT_DETERM_N (m - 1) o (rtac conjI THEN' case_atac ctxt) THEN' case_atac ctxt);
    90 
    90