src/Pure/Tools/rule_insts.ML
changeset 59839 62d69ffa639f
parent 59836 5e77a35adc67
child 59846 c7b7bca8592c
equal deleted inserted replaced
59838:616cabc3ab51 59839:62d69ffa639f
    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