T: a+b-c+d-e; map(abs, T) => abs(a)+abs(b)+abs(c)+abs(d)+abs(e) There are some special cases which may or may not be problems in your application: map(abs, a) => error map(abs, a-1) => abs(a)+1 map(abs,sum(x[i],i,0,n)) => error instead: S:sum(x[i],i,0,n) substpart(abs(piece),S,1) Hope this is useful. -s