equal
deleted
inserted
replaced
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; |