477 |
477 |
478 (** proof methods **) |
478 (** proof methods **) |
479 |
479 |
480 (* simplification *) |
480 (* simplification *) |
481 |
481 |
482 val colon = Args.$$$ ":"; |
|
483 |
|
484 val simp_options = |
482 val simp_options = |
485 (Args.$$$ "no_asm" -- colon >> K simp_tac || |
483 (Args.parens (Args.$$$ "no_asm") >> K simp_tac || |
486 Args.$$$ "no_asm_simp" -- colon >> K asm_simp_tac || |
484 Args.parens (Args.$$$ "no_asm_simp") >> K asm_simp_tac || |
487 Args.$$$ "no_asm_use" -- colon >> K full_simp_tac || |
485 Args.parens (Args.$$$ "no_asm_use") >> K full_simp_tac || |
488 Scan.succeed asm_full_simp_tac); |
486 Scan.succeed asm_full_simp_tac); |
489 |
487 |
490 val simp_modifiers = |
488 val simp_modifiers = |
491 [Args.$$$ simpN -- colon >> K (I, simp_add_local), |
489 [Args.$$$ simpN -- Args.colon >> K (I, simp_add_local), |
492 Args.$$$ simpN -- Args.$$$ addN -- colon >> K (I, simp_add_local), |
490 Args.$$$ simpN -- Args.$$$ addN -- Args.colon >> K (I, simp_add_local), |
493 Args.$$$ simpN -- Args.$$$ delN -- colon >> K (I, simp_del_local), |
491 Args.$$$ simpN -- Args.$$$ delN -- Args.colon >> K (I, simp_del_local), |
494 Args.$$$ simpN -- Args.$$$ onlyN -- colon >> K (map_local_simpset clear_ss, simp_add_local), |
492 Args.$$$ simpN -- Args.$$$ onlyN -- Args.colon >> K (map_local_simpset clear_ss, simp_add_local), |
495 Args.$$$ otherN -- colon >> K (I, I)]; |
493 Args.$$$ otherN -- Args.colon >> K (I, I)]; |
496 |
494 |
497 val simp_modifiers' = |
495 val simp_modifiers' = |
498 [Args.$$$ addN -- colon >> K (I, simp_add_local), |
496 [Args.$$$ addN -- Args.colon >> K (I, simp_add_local), |
499 Args.$$$ delN -- colon >> K (I, simp_del_local), |
497 Args.$$$ delN -- Args.colon >> K (I, simp_del_local), |
500 Args.$$$ onlyN -- colon >> K (map_local_simpset clear_ss, simp_add_local), |
498 Args.$$$ onlyN -- Args.colon >> K (map_local_simpset clear_ss, simp_add_local), |
501 Args.$$$ otherN -- colon >> K (I, I)]; |
499 Args.$$$ otherN -- Args.colon >> K (I, I)]; |
502 |
500 |
503 fun simp_args more_mods = |
501 fun simp_args more_mods = |
504 Method.sectioned_args (Args.bang_facts -- Scan.lift simp_options) (more_mods @ simp_modifiers'); |
502 Method.sectioned_args (Args.bang_facts -- Scan.lift simp_options) (more_mods @ simp_modifiers'); |
505 |
503 |
506 |
504 |