equal
deleted
inserted
replaced
777 (* simult_matches *) |
777 (* simult_matches *) |
778 |
778 |
779 fun simult_matches ctxt (t, pats) = |
779 fun simult_matches ctxt (t, pats) = |
780 (case Seq.pull (Unify.matchers (theory_of ctxt) (map (rpair t) pats)) of |
780 (case Seq.pull (Unify.matchers (theory_of ctxt) (map (rpair t) pats)) of |
781 NONE => error "Pattern match failed!" |
781 NONE => error "Pattern match failed!" |
782 | SOME (env, _) => map (apsnd snd) (Envir.alist_of env)); |
782 | SOME (env, _) => Vartab.fold (fn (v, (_, t)) => cons (v, t)) (Envir.term_env env) []); |
783 |
783 |
784 |
784 |
785 (* bind_terms *) |
785 (* bind_terms *) |
786 |
786 |
787 val bind_terms = fold (fn (xi, t) => fn ctxt => |
787 val bind_terms = fold (fn (xi, t) => fn ctxt => |