Changed proof of strong induction rule to avoid infinite loop
authorberghofe
Wed, 13 Aug 2008 03:00:33 +0200
changeset 27847 0dffedf9aff5
parent 27846 2828a276dc93
child 27848 eda38d6e55da
Changed proof of strong induction rule to avoid infinite loop when premises of introduction rules contain equations.
src/HOL/Nominal/nominal_inductive.ML
--- a/src/HOL/Nominal/nominal_inductive.ML	Tue Aug 12 21:48:59 2008 +0200
+++ b/src/HOL/Nominal/nominal_inductive.ML	Wed Aug 13 03:00:33 2008 +0200
@@ -388,9 +388,10 @@
                      REPEAT_DETERM_N (nprems_of ihyp - length gprems)
                        (simp_tac swap_simps_ss 1),
                      REPEAT_DETERM_N (length gprems)
-                       (simp_tac (HOL_ss
-                          addsimps inductive_forall_def' :: gprems2
-                          addsimprocs [NominalPackage.perm_simproc]) 1)]));
+                       (simp_tac (HOL_basic_ss
+                          addsimps [inductive_forall_def']
+                          addsimprocs [NominalPackage.perm_simproc]) 1 THEN
+                        resolve_tac gprems2 1)]));
                  val final = Goal.prove ctxt'' [] [] (term_of concl)
                    (fn _ => cut_facts_tac [th] 1 THEN full_simp_tac (HOL_ss
                      addsimps vc_compat_ths'' @ freshs2' @