equal
deleted
inserted
replaced
238 fun dest_comb(t1 $ t2) = {Rator = t1, Rand = t2} |
238 fun dest_comb(t1 $ t2) = {Rator = t1, Rand = t2} |
239 | dest_comb _ = raise USYN_ERR "dest_comb" "not a comb"; |
239 | dest_comb _ = raise USYN_ERR "dest_comb" "not a comb"; |
240 |
240 |
241 fun dest_abs used (a as Abs(s, ty, M)) = |
241 fun dest_abs used (a as Abs(s, ty, M)) = |
242 let |
242 let |
243 val s' = variant used s; |
243 val s' = Name.variant used s; |
244 val v = Free(s', ty); |
244 val v = Free(s', ty); |
245 in ({Bvar = v, Body = Term.betapply (a,v)}, s'::used) |
245 in ({Bvar = v, Body = Term.betapply (a,v)}, s'::used) |
246 end |
246 end |
247 | dest_abs _ _ = raise USYN_ERR "dest_abs" "not an abstraction"; |
247 | dest_abs _ _ = raise USYN_ERR "dest_abs" "not an abstraction"; |
248 |
248 |