src/Pure/Isar/local_defs.ML
changeset 63221 7d43fbbaba28
parent 63169 d36c7dc40000
child 63344 c9910404cc8a
equal deleted inserted replaced
63220:06cbfbaf39c5 63221:7d43fbbaba28
   194 
   194 
   195 (* meta rewrite rules *)
   195 (* meta rewrite rules *)
   196 
   196 
   197 fun meta_rewrite_conv ctxt =
   197 fun meta_rewrite_conv ctxt =
   198   Raw_Simplifier.rewrite_cterm (false, false, false) (K (K NONE))
   198   Raw_Simplifier.rewrite_cterm (false, false, false) (K (K NONE))
   199     (empty_simpset ctxt
   199     (ctxt
   200       addsimps (Rules.get (Context.Proof ctxt))
   200       |> Raw_Simplifier.init_simpset (Rules.get (Context.Proof ctxt))
   201       |> Raw_Simplifier.add_eqcong Drule.equals_cong);    (*protect meta-level equality*)
   201       |> Raw_Simplifier.add_eqcong Drule.equals_cong);    (*protect meta-level equality*)
   202 
   202 
   203 val meta_rewrite_rule = Conv.fconv_rule o meta_rewrite_conv;
   203 val meta_rewrite_rule = Conv.fconv_rule o meta_rewrite_conv;
   204 
   204 
   205 fun abs_def_rule ctxt = meta_rewrite_rule ctxt #> Drule.abs_def;
   205 fun abs_def_rule ctxt = meta_rewrite_rule ctxt #> Drule.abs_def;