Note the instance proofs, since they can be easily lifted.
authorCezary Kaliszyk <kaliszyk@in.tum.de>
Wed, 24 Feb 2010 15:36:07 +0100
changeset 1249 ea6a52a4f5bf
parent 1248 705afaaf6fb4
child 1250 d1ab27c10049
Note the instance proofs, since they can be easily lifted.
Quot/Nominal/Perm.thy
--- a/Quot/Nominal/Perm.thy	Wed Feb 24 15:13:22 2010 +0100
+++ b/Quot/Nominal/Perm.thy	Wed Feb 24 15:36:07 2010 +0100
@@ -109,13 +109,19 @@
       (distinct (op =)) (map (fst o strip_comb o fst o HOLogic.dest_eq o HOLogic.dest_Trueprop o prop_of) perm_ldef);
     val perm_empty_thms = List.take (prove_perm_empty lthy' induct perm_ldef perm_frees, length new_type_names);
     val perm_append_thms = List.take (prove_perm_append lthy' induct perm_ldef perm_frees, length new_type_names)
-    fun tac ctxt perm_thms =
+    val perms_name = space_implode "_" perm_names'
+    val perms_zero_bind = Binding.name (perms_name ^ "_zero")
+    val perms_append_bind = Binding.name (perms_name ^ "_append")
+    fun tac _ perm_thms =
       (Class.intro_classes_tac []) THEN (ALLGOALS (
         simp_tac (HOL_ss addsimps perm_thms
       )));
     fun morphism phi = map (Morphism.thm phi);
   in
-    Class_Target.prove_instantiation_exit_result morphism tac (perm_empty_thms @ perm_append_thms) lthy'
+  lthy'
+  |> snd o (Local_Theory.note ((perms_zero_bind, []), perm_empty_thms))
+  |> snd o (Local_Theory.note ((perms_append_bind, []), perm_append_thms))
+  |> Class_Target.prove_instantiation_exit_result morphism tac (perm_empty_thms @ perm_append_thms)
   end
 
 *}