src/Pure/Proof/proofchecker.ML
changeset 18127 9f03d8a9a81b
parent 17412 e26cb20ef0cc
child 20071 8f3e1ddb50e6
equal deleted inserted replaced
18126:b74145e46e0d 18127:9f03d8a9a81b
    36     val lookup = lookup_thm thy;
    36     val lookup = lookup_thm thy;
    37 
    37 
    38     fun thm_of_atom thm Ts =
    38     fun thm_of_atom thm Ts =
    39       let
    39       let
    40         val tvars = term_tvars (Thm.full_prop_of thm);
    40         val tvars = term_tvars (Thm.full_prop_of thm);
    41         val (thm', fmap) = Thm.varifyT' [] thm;
    41         val (fmap, thm') = Thm.varifyT' [] thm;
    42         val ctye = map (pairself (Thm.ctyp_of sg))
    42         val ctye = map (pairself (Thm.ctyp_of sg))
    43           (map TVar tvars @ map (fn ((_, S), ixn) => TVar (ixn, S)) fmap ~~ Ts)
    43           (map TVar tvars @ map (fn ((_, S), ixn) => TVar (ixn, S)) fmap ~~ Ts)
    44       in
    44       in
    45         Thm.instantiate (ctye, []) (forall_intr_vars (forall_intr_frees thm'))
    45         Thm.instantiate (ctye, []) (forall_intr_vars (forall_intr_frees thm'))
    46       end;
    46       end;