equal
deleted
inserted
replaced
786 prove_indrule cs cTs sumT rec_const params intr_ts mono fp_def |
786 prove_indrule cs cTs sumT rec_const params intr_ts mono fp_def |
787 rec_sets_defs thy1; |
787 rec_sets_defs thy1; |
788 val induct = |
788 val induct = |
789 if coind then |
789 if coind then |
790 (raw_induct, [RuleCases.case_names [rec_name], |
790 (raw_induct, [RuleCases.case_names [rec_name], |
791 RuleCases.case_conclusion_binops rec_name induct_cases, |
791 RuleCases.case_conclusion (rec_name, induct_cases), |
792 RuleCases.consumes 1]) |
792 RuleCases.consumes 1]) |
793 else if no_ind orelse length cs > 1 then |
793 else if no_ind orelse length cs > 1 then |
794 (raw_induct, [RuleCases.case_names induct_cases, RuleCases.consumes 0]) |
794 (raw_induct, [RuleCases.case_names induct_cases, RuleCases.consumes 0]) |
795 else (raw_induct RSN (2, rev_mp), [RuleCases.case_names induct_cases, RuleCases.consumes 1]); |
795 else (raw_induct RSN (2, rev_mp), [RuleCases.case_names induct_cases, RuleCases.consumes 1]); |
796 |
796 |