## #488 integrands involving false

open
nobody
5
2006-04-10
2004-01-11
No

When ?defint isn't able to find the value
of a definite integral, it returns false, and
it's the job of \$defint to return a correct
noun form. Maxima allows false to be used
as an identifer -- this allows \$defint to get
mixed up; for example

(C1) defint(false,x,0,1);
(D1) 'INTEGRATE(FALSE,x,0,1)
(C2) defint(false,x,0,2);
(D2) 2*FALSE
(C3) build_info();

Maxima version: 5.9.0
Maxima build date: 19:10 2/9/2003
host type: i686-pc-mingw32
lisp-implementation-type: Kyoto Common Lisp
lisp-implementation-version: GCL-2-5.0

This bug may not be worth fixing; it might be
better to disallow true, false, und, ... to be
used this way.

Barton

## Discussion

• Stavros Macrakis - 2004-01-25

Logged In: YES
user_id=588346

The true/false and ind/und/inf cases are different.

integrate(true,...) doesn't make sense, because true is a
boolean constant, and there is no good reason to arbitrarily
convert boolean functions to real functions (e.g. false=0). So
either a noun form or an error or even (b-a)*true seem like
perfectly OK (non-)results. Sure, it would be nice if it were
perfectly consistent, but....

The ind/und/inf cases, on the other hand, are not even
Integrate issues. Integrate(nnn,x,a,b) where nnn is one of
those is = (b-a)*nnn. If the simplifier gets that right, then
Integrate will get that right. So integrate(inf,a,0,1)=>inf,
integrate(inf,a,0,0)=inf*0=und, integrate(ind,a,0,1)
=ind*1=ind, integrate(ind,a,0,0)=ind*0=0, integrate
(ind,a,0,inf)=ind*inf=und, etc.

But currently the simplifier does NOT get simplifications
involving non-standard numbers (inf, minf, infinity, ind, und)
right.

• Robert Dodier - 2006-04-10
• labels: --> Lisp Core - Integration