src/Pure/simplifier.ML
changeset 78072 001739cb8d08
parent 78067 a71bfc551891
child 78077 5c3e8e6f430a
equal deleted inserted replaced
78071:61a1bf9eb0ce 78072:001739cb8d08
   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) =>