Improved proof of injectivity theorems to make it work on
authorberghofe
Mon, 17 Oct 2005 19:19:29 +0200
changeset 17874 8be65cf94d2e
parent 17873 09236f6a6a19
child 17875 d81094515061
Improved proof of injectivity theorems to make it work on "ordinary" function types as well.
src/HOL/Nominal/nominal_package.ML
--- a/src/HOL/Nominal/nominal_package.ML	Mon Oct 17 18:34:51 2005 +0200
+++ b/src/HOL/Nominal/nominal_package.ML	Mon Oct 17 19:19:29 2005 +0200
@@ -1717,7 +1717,9 @@
                   rep_inject_thms')) 1,
                 TRY (asm_full_simp_tac (HOL_basic_ss addsimps (fresh_def :: supp_def ::
                   alpha @ abs_perm @ abs_fresh @ rep_inject_thms @
-                  perm_rep_perm_thms)) 1)])
+                  perm_rep_perm_thms)) 1),
+                TRY (asm_full_simp_tac (HOL_basic_ss addsimps (perm_fun_def ::
+                  expand_fun_eq :: rep_inject_thms @ perm_rep_perm_thms)) 1)])
         end) (constrs ~~ constr_rep_thms)
       end) (List.take (descr, length new_type_names) ~~ new_type_names ~~ constr_rep_thmss);
 
@@ -1769,7 +1771,7 @@
             (fn _ =>
               [simp_tac (HOL_basic_ss addsimps (supp_def ::
                  Un_assoc :: de_Morgan_conj :: Collect_disj_eq :: finite_Un ::
-                 refl :: symmetric empty_def :: Finites.emptyI :: simp_thms @
+                 symmetric empty_def :: Finites.emptyI :: simp_thms @
                  abs_perm @ abs_fresh @ inject_thms' @ perm_thms')) 1])
         in
           (supp_thm,