changeset 29265 | 5b4247055bd7 |
parent 29006 | abe0f11cfa4e |
child 29276 | 94b1ffec9201 |
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) => |