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