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; |