equal
deleted
inserted
replaced
90 val ts' = |
90 val ts' = |
91 map2 (Type.constraint o Type_Infer.paramify_vars) Ts ts |
91 map2 (Type.constraint o Type_Infer.paramify_vars) Ts ts |
92 |> Syntax.check_terms ctxt' |
92 |> Syntax.check_terms ctxt' |
93 |> Variable.polymorphic ctxt'; |
93 |> Variable.polymorphic ctxt'; |
94 val Ts' = map Term.fastype_of ts'; |
94 val Ts' = map Term.fastype_of ts'; |
95 val tyenv = fold Type.raw_match (Ts ~~ Ts') Vartab.empty; |
95 val tyenv = fold (Sign.typ_match (Proof_Context.theory_of ctxt)) (Ts ~~ Ts') Vartab.empty; |
96 val tyenv' = Vartab.fold (fn (xi, (S, T)) => cons ((xi, S), T)) tyenv []; |
96 val tyenv' = Vartab.fold (fn (xi, (S, T)) => cons ((xi, S), T)) tyenv []; |
97 in ((ts', tyenv'), ctxt') end; |
97 in ((ts', tyenv'), ctxt') end; |
98 |
98 |
99 in |
99 in |
100 |
100 |