src/Provers/splitter.ML
changeset 9703 bf65780eed02
parent 9267 dbf30a2d1b56
child 9807 64b7f756c8f0
equal deleted inserted replaced
9702:f23bee3c0682 9703:bf65780eed02
   410 
   410 
   411 val split_attr =
   411 val split_attr =
   412  (Attrib.add_del_args split_add_global split_del_global,
   412  (Attrib.add_del_args split_add_global split_del_global,
   413   Attrib.add_del_args split_add_local split_del_local);
   413   Attrib.add_del_args split_add_local split_del_local);
   414 
   414 
   415 val setup_attrs =
   415 
   416   Attrib.add_attributes [(splitN, split_attr, "declare splitter rule")];
   416 (* methods *)
   417 
       
   418 
       
   419 (* method modifiers *)
       
   420 
   417 
   421 val split_modifiers =
   418 val split_modifiers =
   422  [Args.$$$ splitN -- Args.colon >> K ((I, split_add_local): Method.modifier),
   419  [Args.$$$ splitN -- Args.colon >> K ((I, split_add_local): Method.modifier),
   423   Args.$$$ splitN -- Args.$$$ "add" -- Args.colon >> K (I, split_add_local),
   420   Args.$$$ splitN -- Args.$$$ "add" -- Args.colon >> K (I, split_add_local),
   424   Args.$$$ splitN -- Args.$$$ "del" -- Args.colon >> K (I, split_del_local)];
   421   Args.$$$ splitN -- Args.$$$ "del" -- Args.colon >> K (I, split_del_local)];
   425 
   422 
       
   423 val split_meth = Method.thms_args (Method.SIMPLE_METHOD' HEADGOAL o split_tac);
       
   424 
   426 
   425 
   427 
   426 
   428 (** theory setup **)
   427 (** theory setup **)
   429 
   428 
   430 val setup = [setup_attrs];
   429 val setup =
       
   430  [Attrib.add_attributes [(splitN, split_attr, "declare splitter rule")],
       
   431   Method.add_methods [(splitN, split_meth, "apply splitter rule")]];
   431 
   432 
   432 end;
   433 end;