don't learn from the proof of "psimps" etc.
authorblanchet
Fri, 11 Jan 2013 16:30:56 +0100
changeset 50828 91e6836bb68b
parent 50827 aba769dc82e9
child 50829 01c9a515ccdd
don't learn from the proof of "psimps" etc.
src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML	Fri Jan 11 16:30:56 2013 +0100
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML	Fri Jan 11 16:30:56 2013 +0100
@@ -622,6 +622,11 @@
    exclusively to "someI_e" (and to some internal constructions). *)
 val class_some_dep = nickname_of_thm @{thm someI_ex}
 
+val fundef_ths =
+  @{thms fundef_ex1_existence fundef_ex1_uniqueness fundef_ex1_iff
+         fundef_default_value}
+  |> map nickname_of_thm
+
 (* "Rep_xxx_inject", "Abs_xxx_inverse", etc., are derived using these facts. *)
 val typedef_ths =
   @{thms type_definition.Abs_inverse type_definition.Rep_inverse
@@ -648,8 +653,11 @@
   let
     val deps = thms_in_proof (SOME name_tabs) th
   in
-    if deps = [typedef_dep] orelse deps = [class_some_dep] orelse
-       exists (member (op =) typedef_ths) deps orelse is_size_def deps th then
+    if deps = [typedef_dep] orelse
+       deps = [class_some_dep] orelse
+       exists (member (op =) fundef_ths) deps orelse
+       exists (member (op =) typedef_ths) deps orelse
+       is_size_def deps th then
       []
     else
       deps