src/Pure/Isar/obtain.ML
changeset 74282 c2ee8d993d6a
parent 74269 f084d599bb44
child 74365 b49bd5d9041f
equal deleted inserted replaced
74281:7829d6435c60 74282:c2ee8d993d6a
   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);