src/Pure/Isar/rule_cases.ML
changeset 21745 a1d8806b5267
parent 21708 45e7491bea47
child 22568 ed7aa5a350ef
equal deleted inserted replaced
21744:b790ce4c21c2 21745:a1d8806b5267
    89         chop (length (Logic.strip_assums_hyp outline)) (Logic.strip_assums_hyp prop)
    89         chop (length (Logic.strip_assums_hyp outline)) (Logic.strip_assums_hyp prop)
    90       in ([(qual case_hypsN, hyps)], [(qual case_premsN, prems)]) end;
    90       in ([(qual case_hypsN, hyps)], [(qual case_premsN, prems)]) end;
    91 
    91 
    92 fun extract_case is_open thy (case_outline, raw_prop) name concls =
    92 fun extract_case is_open thy (case_outline, raw_prop) name concls =
    93   let
    93   let
    94     val rename = if is_open then I else (apfst Name.internal);
    94     val rename = if is_open then I else (apfst (Name.internal o Name.clean));
    95 
    95 
    96     val props = Logic.dest_conjunctions (Drule.norm_hhf thy raw_prop);
    96     val props = Logic.dest_conjunctions (Drule.norm_hhf thy raw_prop);
    97     val len = length props;
    97     val len = length props;
    98     val nested = is_some case_outline andalso len > 1;
    98     val nested = is_some case_outline andalso len > 1;
    99 
    99