src/Pure/Isar/attrib.ML
changeset 19046 bc5c6c9b114e
parent 18998 10c251f29847
child 19473 d87a8838afa4
equal deleted inserted replaced
19045:75786c2eb897 19046:bc5c6c9b114e
   236   let
   236   let
   237     val (_, sorts) = Drule.types_sorts thm;
   237     val (_, sorts) = Drule.types_sorts thm;
   238     fun prepT (a, T) = (Thm.ctyp_of thy (TVar (a, the_sort sorts a)), Thm.ctyp_of thy T);
   238     fun prepT (a, T) = (Thm.ctyp_of thy (TVar (a, the_sort sorts a)), Thm.ctyp_of thy T);
   239     fun prep (xi, t) = pairself (Thm.cterm_of thy) (Var (xi, Term.fastype_of t), t);
   239     fun prep (xi, t) = pairself (Thm.cterm_of thy) (Var (xi, Term.fastype_of t), t);
   240   in
   240   in
   241     Drule.instantiate (map prepT (gen_distinct (op =) envT),
   241     Drule.instantiate (map prepT (distinct (op =) envT),
   242       map prep (gen_distinct (fn ((xi, t), (yj, u)) => xi = yj andalso t aconv u) env)) thm
   242       map prep (distinct (fn ((xi, t), (yj, u)) => xi = yj andalso t aconv u) env)) thm
   243   end;
   243   end;
   244 
   244 
   245 in
   245 in
   246 
   246 
   247 fun read_instantiate mixed_insts (generic, thm) =
   247 fun read_instantiate mixed_insts (generic, thm) =