src/HOL/Tools/primrec_package.ML
changeset 29265 5b4247055bd7
parent 29006 abe0f11cfa4e
child 29276 94b1ffec9201
equal deleted inserted replaced
29264:4ea3358fac3f 29265:5b4247055bd7
    67     if length middle > 1 then
    67     if length middle > 1 then
    68       primrec_error "more than one non-variable in pattern"
    68       primrec_error "more than one non-variable in pattern"
    69     else
    69     else
    70      (check_vars "repeated variable names in pattern: " (duplicates (op =) lfrees);
    70      (check_vars "repeated variable names in pattern: " (duplicates (op =) lfrees);
    71       check_vars "extra variables on rhs: "
    71       check_vars "extra variables on rhs: "
    72         (map dest_Free (term_frees rhs) |> subtract (op =) lfrees
    72         (map dest_Free (OldTerm.term_frees rhs) |> subtract (op =) lfrees
    73           |> filter_out (is_fixed o fst));
    73           |> filter_out (is_fixed o fst));
    74       case AList.lookup (op =) rec_fns fname of
    74       case AList.lookup (op =) rec_fns fname of
    75         NONE =>
    75         NONE =>
    76           (fname, (tname, rpos, [(cname, (ls, cargs, rs, rhs, eqn))]))::rec_fns
    76           (fname, (tname, rpos, [(cname, (ls, cargs, rs, rhs, eqn))]))::rec_fns
    77       | SOME (_, rpos', eqns) =>
    77       | SOME (_, rpos', eqns) =>