Eisbach instantiation attributes are like Thm.rule_attribute (in correspondence to Pure versions), but without the built-in treatment of free dummy thms (see also fb7756087101);
authorwenzelm
Wed, 13 Jan 2016 15:09:34 +0100
changeset 62162 dca35981c8fb
parent 62161 9aa4012fc45d
child 62163 f25408289842
child 62164 a12413bec743
Eisbach instantiation attributes are like Thm.rule_attribute (in correspondence to Pure versions), but without the built-in treatment of free dummy thms (see also fb7756087101);
src/HOL/Eisbach/eisbach_rule_insts.ML
--- a/src/HOL/Eisbach/eisbach_rule_insts.ML	Wed Jan 13 09:38:24 2016 +0100
+++ b/src/HOL/Eisbach/eisbach_rule_insts.ML	Wed Jan 13 15:09:34 2016 +0100
@@ -204,8 +204,8 @@
         (Parse.and_list1 (Args.var -- (Args.$$$ "=" |-- Parse_Tools.name_term)) -- Parse.for_fixes)
         >> (fn args =>
             let val args' = read_where_insts args in
-              Thm.mixed_attribute (fn (context, thm) =>
-                (context, read_instantiate_closed (Context.proof_of context) args' thm))
+              fn (context, thm) =>
+                (NONE, SOME (read_instantiate_closed (Context.proof_of context) args' thm))
             end))
       "named instantiation of theorem");
 
@@ -221,12 +221,12 @@
         let
           val read_insts = read_of_insts (not unchecked) context args;
         in
-          Thm.mixed_attribute (fn (context, thm) =>
+          fn (context, thm) =>
             let val thm' =
               if Thm.is_free_dummy thm andalso unchecked
               then Drule.free_dummy_thm
               else read_instantiate_closed (Context.proof_of context) (read_insts thm) thm
-            in (context, thm') end)
+            in (NONE, SOME thm') end
         end))
       "positional instantiation of theorem");