src/Pure/variable.ML
changeset 74539 f07761ee5a7f
parent 74532 64d1b02327a4
child 77952 27b5cb41c253
equal deleted inserted replaced
74538:45c09620f726 74539:f07761ee5a7f
   332     [] => t
   332     [] => t
   333   | bounds =>
   333   | bounds =>
   334       let
   334       let
   335         val names = Term.declare_term_names t (names_of ctxt);
   335         val names = Term.declare_term_names t (names_of ctxt);
   336         val xs = rev (#1 (fold_map Name.variant (rev (map #2 bounds)) names));
   336         val xs = rev (#1 (fold_map Name.variant (rev (map #2 bounds)) names));
   337         fun subst ((b, T), _) x' = (Free (b, T), Syntax_Trans.mark_bound_abs (x', T));
   337         fun substs (((b, T), _), x') =
   338       in Term.subst_atomic (map2 subst bounds xs) t end);
   338           let fun subst U = (Free (b, U), Syntax_Trans.mark_bound_abs (x', U))
       
   339           in [subst T, subst (Type_Annotation.ignore_type T)] end;
       
   340       in Term.subst_atomic (maps substs (bounds ~~ xs)) t end);
   339 
   341 
   340 
   342 
   341 
   343 
   342 (** fixes **)
   344 (** fixes **)
   343 
   345