What is assumed in the integrate?



Hi,

I'ev observed some strange behavior with integrate.
Maybe this could be considered as a bug.




(C1) assume(a<b, b<c, c<d)$
(C2) integrate(max(x, a), x, b, c);
                                 c
                                /
                                [
(D2)                            I  MAX(x, a) dx
                                ]
                                /
                                 b
(C3) assume(x > b)$  
(C4) integrate(max(x, a), x, b, c);
                                     2    2
                                    c    b
(D4)                                -- - --
                                    2    2
(C5) integrate(max(y, a), y, b, c);
                                 c
                                /
                                [
(D5)                            I  MAX(y, a) dy
                                ]
                                /
                                 b
(C6) assume(y > b)$  integrate(max(y, a), y, b, c);
(C7) 
                                     2    2
                                    c    b
(D7)                                -- - --
                                    2    2


In C3, C6, above, assumption is about external variables x,y which should 
have nothing in common with the dummy variables x,y in the integrate.
Maybe, integrate should be made more clever. Something like this:

(C1) assume(a<b, b<c, c<d)$
(C2)  block([v],v:integrate((assume(x > b, x < c), max(x, a)), x, b, c),
      forget(x > b, x < c), return(v));
                                     2    2
                                    c    b
(D2)                                -- - --
                                    2    2
(C3) facts();
(D3)                         [b > a, c > b, d > c]

(C4)  block([v],v:integrate((assume(x > b, x < c), max(x, d)), x, b, c),
      forget(x > b, x < c), return(v));
(D4)                               (c - b) d
(C5) facts();
(D5)                         [b > a, c > b, d > c]


It seems that something like this might be included in the integrate
initially. Basically, integrate is something that extends over an interval
of the real axis, therefore, facts like assume(x > b, x < c), above,
must be used, before the integrate is performed, for evaluation of 
the function which is integrated. And, of course, nothing could be 
assumed about the integration dummy variable from the outside of integrate.

Regards,
--
Alexander


-------------------------------------------------------------
Maxima version: 5.9.0
Maxima build date: 19:1 8/5/2003
host type: i586-pc-linux-gnu
lisp-implementation-type: CLISP
lisp-implementation-version: 2.27 (released 2001-07-17) (built 3223390905) (memory 3269088151)
-------------------------------------------------------------