domain package registers fixrec_simp lemmas
authorhuffman
Tue, 03 Nov 2009 18:32:30 -0800
changeset 33427 3182812d33ed
parent 33426 91df5fb65106
child 33428 70ed971a79d1
domain package registers fixrec_simp lemmas
src/HOLCF/Tools/Domain/domain_theorems.ML
src/HOLCF/Tools/fixrec.ML
--- a/src/HOLCF/Tools/Domain/domain_theorems.ML	Tue Nov 03 17:09:27 2009 -0800
+++ b/src/HOLCF/Tools/Domain/domain_theorems.ML	Tue Nov 03 18:32:30 2009 -0800
@@ -640,7 +640,8 @@
         ((Binding.name "casedist"  , [casedist]  ), [Induct.cases_type dname]),
         ((Binding.name "when_rews" , when_rews   ), [Simplifier.simp_add]),
         ((Binding.name "compacts"  , con_compacts), [Simplifier.simp_add]),
-        ((Binding.name "con_rews"  , con_rews    ), [Simplifier.simp_add]),
+        ((Binding.name "con_rews"  , con_rews    ),
+         [Simplifier.simp_add, Fixrec.fixrec_simp_add]),
         ((Binding.name "sel_rews"  , sel_rews    ), [Simplifier.simp_add]),
         ((Binding.name "dis_rews"  , dis_rews    ), [Simplifier.simp_add]),
         ((Binding.name "pat_rews"  , pat_rews    ), [Simplifier.simp_add]),
@@ -649,7 +650,8 @@
         ((Binding.name "inverts"   , inverts     ), [Simplifier.simp_add]),
         ((Binding.name "injects"   , injects     ), [Simplifier.simp_add]),
         ((Binding.name "copy_rews" , copy_rews   ), [Simplifier.simp_add]),
-        ((Binding.name "match_rews", mat_rews    ), [Simplifier.simp_add])]
+        ((Binding.name "match_rews", mat_rews    ),
+         [Simplifier.simp_add, Fixrec.fixrec_simp_add])]
     |> Sign.parent_path
     |> pair (iso_rews @ when_rews @ con_rews @ sel_rews @ dis_rews @
         pat_rews @ dist_les @ dist_eqs @ copy_rews)
--- a/src/HOLCF/Tools/fixrec.ML	Tue Nov 03 17:09:27 2009 -0800
+++ b/src/HOLCF/Tools/fixrec.ML	Tue Nov 03 18:32:30 2009 -0800
@@ -13,8 +13,8 @@
   val add_fixpat: Thm.binding * term list -> theory -> theory
   val add_fixpat_cmd: Attrib.binding * string list -> theory -> theory
   val add_matchers: (string * string) list -> theory -> theory
-  val add_fixrec_simp: Thm.attribute
-  val del_fixrec_simp: Thm.attribute
+  val fixrec_simp_add: Thm.attribute
+  val fixrec_simp_del: Thm.attribute
   val fixrec_simp_tac: Proof.context -> int -> tactic
   val setup: theory -> theory
 end;
@@ -396,11 +396,11 @@
     SUBGOAL tac
   end;
 
-val add_fixrec_simp : Thm.attribute =
+val fixrec_simp_add : Thm.attribute =
   Thm.declaration_attribute
     (fn th => FixrecSimpData.map (fn ss => ss addsimps [th]));
 
-val del_fixrec_simp : Thm.attribute =
+val fixrec_simp_del : Thm.attribute =
   Thm.declaration_attribute
     (fn th => FixrecSimpData.map (fn ss => ss delsimps [th]));
 
@@ -527,7 +527,7 @@
 val setup =
   FixrecMatchData.init
   #> Attrib.setup @{binding fixrec_simp}
-                     (Attrib.add_del add_fixrec_simp del_fixrec_simp)
+                     (Attrib.add_del fixrec_simp_add fixrec_simp_del)
                      "declaration of fixrec simp rule"
   #> Method.setup @{binding fixrec_simp}
                      (Scan.succeed (SIMPLE_METHOD' o fixrec_simp_tac))