equal
deleted
inserted
replaced
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; |