treat simproc results as atomic -- more compact proof terms;
authorwenzelm
Wed, 14 Aug 2019 11:14:27 +0200
changeset 70528 9b3610fe74d6
parent 70527 095e6459d3da
child 70529 2ecbbe6b35db
treat simproc results as atomic -- more compact proof terms;
src/Pure/raw_simplifier.ML
--- a/src/Pure/raw_simplifier.ML	Tue Aug 13 21:52:08 2019 +0200
+++ b/src/Pure/raw_simplifier.ML	Wed Aug 14 11:14:27 2019 +0200
@@ -905,10 +905,13 @@
 (* mk_procrule *)
 
 fun mk_procrule ctxt thm =
-  let val (prems, lhs, elhs, rhs, _) = decomp_simp thm in
+  let
+    val (prems, lhs, elhs, rhs, _) = decomp_simp thm
+    val thm' = Thm.close_derivation \<^here> thm;
+  in
     if rewrite_rule_extra_vars prems lhs rhs
     then (cond_warning ctxt (fn () => print_thm ctxt "Extra vars on rhs:" ("", thm)); [])
-    else [mk_rrule2 {thm = thm, name = "", lhs = lhs, elhs = elhs, perm = false}]
+    else [mk_rrule2 {thm = thm', name = "", lhs = lhs, elhs = elhs, perm = false}]
   end;