equal
deleted
inserted
replaced
126 fun make_simproc ctxt name {lhss, proc} = |
126 fun make_simproc ctxt name {lhss, proc} = |
127 let |
127 let |
128 val ctxt' = fold Proof_Context.augment lhss ctxt; |
128 val ctxt' = fold Proof_Context.augment lhss ctxt; |
129 val lhss' = Variable.export_terms ctxt' ctxt lhss; |
129 val lhss' = Variable.export_terms ctxt' ctxt lhss; |
130 in |
130 in |
131 cert_simproc (Proof_Context.theory_of ctxt) name {lhss = lhss', proc = proc} |
131 cert_simproc (Proof_Context.theory_of ctxt) name |
|
132 {lhss = lhss', proc = Morphism.entity proc} |
132 end; |
133 end; |
133 |
134 |
134 local |
135 local |
135 |
136 |
136 fun def_simproc prep b {lhss, proc} lthy = |
137 fun def_simproc prep b {lhss, proc} lthy = |
309 local |
310 local |
310 |
311 |
311 val add_del = |
312 val add_del = |
312 (Args.del -- Args.colon >> K (op delsimprocs) || |
313 (Args.del -- Args.colon >> K (op delsimprocs) || |
313 Scan.option (Args.add -- Args.colon) >> K (op addsimprocs)) |
314 Scan.option (Args.add -- Args.colon) >> K (op addsimprocs)) |
314 >> (fn f => fn simproc => fn phi => Thm.declaration_attribute |
315 >> (fn f => fn simproc => Morphism.entity (fn phi => Thm.declaration_attribute |
315 (K (Raw_Simplifier.map_ss (fn ctxt => f (ctxt, [transform_simproc phi simproc]))))); |
316 (K (Raw_Simplifier.map_ss (fn ctxt => f (ctxt, [transform_simproc phi simproc])))))); |
316 |
317 |
317 in |
318 in |
318 |
319 |
319 val simproc_att = |
320 val simproc_att = |
320 (Args.context -- Scan.lift add_del) :|-- (fn (ctxt, decl) => |
321 (Args.context -- Scan.lift add_del) :|-- (fn (ctxt, decl) => |