src/Pure/Proof/reconstruct.ML
changeset 40722 441260986b63
parent 37310 96e2b9a6f074
child 43278 1fbdcebb364b
equal deleted inserted replaced
40721:e5089e903e39 40722:441260986b63
   135             val (Ts, env') =
   135             val (Ts, env') =
   136               (case opTs of
   136               (case opTs of
   137                 NONE => fold_map mk_tvar (map snd tvars @ map snd tfrees) env
   137                 NONE => fold_map mk_tvar (map snd tvars @ map snd tfrees) env
   138               | SOME Ts => (Ts, env));
   138               | SOME Ts => (Ts, env));
   139             val prop' = subst_atomic_types (map TVar tvars @ map TFree tfrees ~~ Ts)
   139             val prop' = subst_atomic_types (map TVar tvars @ map TFree tfrees ~~ Ts)
   140               (forall_intr_vfs prop) handle Library.UnequalLengths =>
   140               (forall_intr_vfs prop) handle ListPair.UnequalLengths =>
   141                 error ("Wrong number of type arguments for " ^ quote (Proofterm.guess_name prf))
   141                 error ("Wrong number of type arguments for " ^ quote (Proofterm.guess_name prf))
   142           in (prop', Proofterm.change_type (SOME Ts) prf, [], env', vTs) end;
   142           in (prop', Proofterm.change_type (SOME Ts) prf, [], env', vTs) end;
   143 
   143 
   144     fun head_norm (prop, prf, cnstrts, env, vTs) =
   144     fun head_norm (prop, prf, cnstrts, env, vTs) =
   145       (Envir.head_norm env prop, prf, cnstrts, env, vTs);
   145       (Envir.head_norm env prop, prf, cnstrts, env, vTs);