proper treatment of nested conjunctions, i.e. simultaneous goals and mutual rules;
--- a/src/Provers/induct_method.ML Fri Dec 23 14:33:28 2005 +0100
+++ b/src/Provers/induct_method.ML Fri Dec 23 15:16:44 2005 +0100
@@ -417,8 +417,8 @@
ruleq
|> Seq.maps (RuleCases.consume (List.concat defs) facts)
|> Seq.maps (fn (((cases, concls), (more_consumes, more_facts)), rule) =>
- (CONJUNCTS (length concls) (ALLGOALS (fn j =>
- (CONJUNCTS ~1 (ALLGOALS
+ (PRECISE_CONJUNCTS (length concls) (ALLGOALS (fn j =>
+ (CONJUNCTS (ALLGOALS
(Method.insert_tac (more_facts @ nth_list atomized_defs (j - 1))
THEN' fix_tac defs_ctxt
(nth concls (j - 1) + more_consumes)