src/Pure/Proof/proof_checker.ML
changeset 74282 c2ee8d993d6a
parent 74266 612b7e0d6721
child 74411 20b0b27bc6c7
equal deleted inserted replaced
74281:7829d6435c60 74282:c2ee8d993d6a
    79             val tvars = build_rev (Term.add_tvars (Thm.full_prop_of thm));
    79             val tvars = build_rev (Term.add_tvars (Thm.full_prop_of thm));
    80             val (fmap, thm') = Thm.varifyT_global' TFrees.empty thm;
    80             val (fmap, thm') = Thm.varifyT_global' TFrees.empty thm;
    81             val ctye =
    81             val ctye =
    82               (tvars @ map (fn ((_, S), ixn) => (ixn, S)) fmap ~~ map (Thm.global_ctyp_of thy) Ts);
    82               (tvars @ map (fn ((_, S), ixn) => (ixn, S)) fmap ~~ map (Thm.global_ctyp_of thy) Ts);
    83           in
    83           in
    84             Thm.instantiate (ctye, []) (Thm.forall_intr_vars (Thm.forall_intr_frees thm'))
    84             Thm.instantiate (TVars.make ctye, Vars.empty)
       
    85               (Thm.forall_intr_vars (Thm.forall_intr_frees thm'))
    85           end;
    86           end;
    86 
    87 
    87         fun thm_of _ _ (PThm ({name, prop = prop', types = SOME Ts, ...}, _)) =
    88         fun thm_of _ _ (PThm ({name, prop = prop', types = SOME Ts, ...}, _)) =
    88               let
    89               let
    89                 val thm = Thm.unconstrainT (Drule.implies_intr_hyps (lookup name));
    90                 val thm = Thm.unconstrainT (Drule.implies_intr_hyps (lookup name));