src/HOL/Tools/split_rule.ML
changeset 27882 eaa9fef9f4c1
parent 27809 a1e409db516b
child 29265 5b4247055bd7
equal deleted inserted replaced
27881:f0d543629376 27882:eaa9fef9f4c1
   142     |> RuleCases.save rl
   142     |> RuleCases.save rl
   143   end;
   143   end;
   144 
   144 
   145 (* attribute syntax *)
   145 (* attribute syntax *)
   146 
   146 
   147 (* FIXME dynamically scoped due to Args.name/pair_tac *)
   147 (* FIXME dynamically scoped due to Args.name_source/pair_tac *)
   148 
   148 
   149 val split_format = Attrib.syntax (Scan.lift
   149 val split_format = Attrib.syntax (Scan.lift
   150  (Args.parens (Args.$$$ "complete") >> K (Thm.rule_attribute (K complete_split_rule)) ||
   150  (Args.parens (Args.$$$ "complete") >> K (Thm.rule_attribute (K complete_split_rule)) ||
   151   OuterParse.and_list1 (Scan.repeat Args.name)
   151   OuterParse.and_list1 (Scan.repeat Args.name_source)
   152     >> (fn xss => Thm.rule_attribute (fn context =>
   152     >> (fn xss => Thm.rule_attribute (fn context =>
   153         split_rule_goal (Context.proof_of context) xss))));
   153         split_rule_goal (Context.proof_of context) xss))));
   154 
   154 
   155 val setup =
   155 val setup =
   156   Attrib.add_attributes
   156   Attrib.add_attributes