equal
deleted
inserted
replaced
333 if TVars.defined instT v then instT |
333 if TVars.defined instT v then instT |
334 else TVars.add (v, Thm.ctyp_of ctxt (norm_type T)) instT |
334 else TVars.add (v, Thm.ctyp_of ctxt (norm_type T)) instT |
335 | _ => instT)))); |
335 | _ => instT)))); |
336 val closed_rule = rule |
336 val closed_rule = rule |
337 |> Thm.forall_intr (Thm.cterm_of ctxt (Free thesis_var)) |
337 |> Thm.forall_intr (Thm.cterm_of ctxt (Free thesis_var)) |
338 |> Thm.instantiate (TVars.dest instT, []); |
338 |> Thm.instantiate (instT, Vars.empty); |
339 |
339 |
340 val ((_, rule' :: terms'), ctxt') = Variable.import false (closed_rule :: terms) ctxt; |
340 val ((_, rule' :: terms'), ctxt') = Variable.import false (closed_rule :: terms) ctxt; |
341 val vars' = |
341 val vars' = |
342 map (dest_Free o Thm.term_of o Drule.dest_term) terms' ~~ |
342 map (dest_Free o Thm.term_of o Drule.dest_term) terms' ~~ |
343 (map snd vars @ replicate (length ys) NoSyn); |
343 (map snd vars @ replicate (length ys) NoSyn); |