Added equivariance lemmas for induct_forall.
--- a/src/HOL/Nominal/nominal_atoms.ML Thu Sep 13 18:06:50 2007 +0200
+++ b/src/HOL/Nominal/nominal_atoms.ML Thu Sep 13 18:08:08 2007 +0200
@@ -21,6 +21,8 @@
val finite_emptyI = @{thm "finite.emptyI"};
val Collect_const = @{thm "Collect_const"};
+val inductive_forall_def = @{thm "induct_forall_def"};
+
(* theory data *)
@@ -803,7 +805,13 @@
||>> PureThy.add_thmss [(("supp_atm", (inst_at [at_supp]) @ (inst_dj [dj_supp])),[])]
||>> PureThy.add_thmss [(("exists_fresh", inst_at [at_exists_fresh]),[])]
||>> PureThy.add_thmss [(("exists_fresh'", inst_at [at_exists_fresh']),[])]
- ||>> PureThy.add_thmss [(("all_eqvt", inst_pt_at [all_eqvt]),[NominalThmDecls.eqvt_force_add])]
+ ||>> PureThy.add_thmss
+ let
+ val thms1 = inst_pt_at [all_eqvt];
+ val thms2 = map (fold_rule [inductive_forall_def]) thms1
+ in
+ [(("all_eqvt", thms1 @ thms2), [NominalThmDecls.eqvt_force_add])]
+ end
||>> PureThy.add_thmss [(("ex_eqvt", inst_pt_at [ex_eqvt]),[NominalThmDecls.eqvt_force_add])]
||>> PureThy.add_thmss
let val thms1 = inst_at [at_fresh]