eq:''diff(x + y =a, x);solve([eq],[dy/dx]);



> How I say to maxima that a>=0 and  0<=x<=a and 0<=y<=a?

I haven't followed the whole thread, but you can declare these facts
to Maxima as follows:

   assume( 0<=x, x<=a,  0<=y, y<=a )

Note that Maxmia can now infer that a>=0:

   is (a>=0) =>   TRUE