equal
deleted
inserted
replaced
274 if ! eta_contract then eta_abs tm else tm |
274 if ! eta_contract then eta_abs tm else tm |
275 end; |
275 end; |
276 |
276 |
277 |
277 |
278 fun abs_tr' tm = |
278 fun abs_tr' tm = |
279 Library.foldr (fn (x, t) => Lexicon.const "_abs" $ x $ t) |
279 uncurry (fold_rev (fn x => fn t => Lexicon.const "_abs" $ x $ t)) |
280 (strip_abss strip_abs_vars strip_abs_body (eta_contr tm)); |
280 (strip_abss strip_abs_vars strip_abs_body (eta_contr tm)); |
281 |
281 |
282 fun atomic_abs_tr' (x, T, t) = |
282 fun atomic_abs_tr' (x, T, t) = |
283 let val [xT] = rename_wrt_term t [(x, T)] |
283 let val [xT] = rename_wrt_term t [(x, T)] |
284 in (mark_boundT xT, subst_bound (mark_bound (fst xT), t)) end; |
284 in (mark_boundT xT, subst_bound (mark_bound (fst xT), t)) end; |