# HG changeset patch # User wenzelm # Date 981154914 -3600 # Node ID 194406da4e43a902dcc4dc4a6325890ca057ca46 # Parent 55de839f48505dd574e8d749200f2420a0d31f35 simplified 'split_format' syntax; diff -r 55de839f4850 -r 194406da4e43 src/HOL/MicroJava/J/Eval.thy --- a/src/HOL/MicroJava/J/Eval.thy Fri Feb 02 23:59:30 2001 +0100 +++ b/src/HOL/MicroJava/J/Eval.thy Sat Feb 03 00:01:54 2001 +0100 @@ -139,7 +139,7 @@ G\s1 -c-> s2; G\s2 -While(e) c-> s3 |] ==> G\Norm s0 -While(e) c-> s3" -lemmas eval_evals_exec_induct = eval_evals_exec.induct [complete_split] +lemmas eval_evals_exec_induct = eval_evals_exec.induct [split_format (complete)] lemma NewCI: "[|new_Addr (heap s) = (a,x); s' = c_hupd (heap s(a\(C,init_vars (fields (G,C))))) (x,s)|] ==> diff -r 55de839f4850 -r 194406da4e43 src/HOL/Tools/split_rule.ML --- a/src/HOL/Tools/split_rule.ML Fri Feb 02 23:59:30 2001 +0100 +++ b/src/HOL/Tools/split_rule.ML Sat Feb 03 00:01:54 2001 +0100 @@ -127,26 +127,15 @@ (* attribute syntax *) -fun complete_split x = - Attrib.no_args (Drule.rule_attribute (K complete_split_rule)) x; - -fun split_format x = - Attrib.syntax (Args.and_list1 (Scan.lift (Scan.repeat Args.name)) - >> (fn xss => Drule.rule_attribute (K (split_rule_goal xss)))) x; - -val split_attributes = - [("complete_split", (complete_split, complete_split), - "recursively split all pair-typed function arguments"), - ("split_format", (split_format, split_format), - "split given pair-typed subterms in premises")]; - - - -(** theory setup **) +fun split_format x = Attrib.syntax + (Args.mode "complete" >> K (Drule.rule_attribute (K complete_split_rule)) || + Args.and_list1 (Scan.lift (Scan.repeat Args.name)) + >> (fn xss => Drule.rule_attribute (K (split_rule_goal xss)))) x; val setup = - [Attrib.add_attributes split_attributes]; - + [Attrib.add_attributes + [("split_format", (split_format, split_format), + "split pair-typed subterms in premises, or function arguments")]]; end;