integrates(a_*b_,x_,c_,d_):=If(isfree(a,x), a*integrates(b,x,c,d));
integrates(a_+b_,x_,c_,d_):=If(isfree(a,x), a+integrates(b,x,c,d), integrates(a,x,c,d)+integrates(b,x,c,d));
integrates(-b_,x_,c_,d_):= -integrates(b,x,c,d);

integrates(x_=>a_ and b_,x_):=integrates(x=>a,x) and integrates(x=>b,x);

integrates(y_):=ds(y,x,-1);
integrates(y(x_)):=y(-1,x);
integrates(y(x_),x_):=y(-1,x);