MEVALP1 leaking assumption



Does anyone know what's going on here? MEVALP1 leaks an assumption.

(%i1) foo : %e^(abs(uu)+uu)*(uu/abs(uu)+1)+%e^(abs(uu)-uu)*(uu/abs(uu)-1);
            abs(uu) + uu    uu             abs(uu) - uu    uu
(%o1)     %e             (------- + 1) + %e             (------- - 1)
                          abs(uu)                        abs(uu)
(%i2) :lisp (MEVALP1 '(($EQUAL) $FOO 0))
((($EQUAL)
  ((MPLUS SIMP)
   ((MTIMES SIMP) ((MEXPT SIMP) $%E ((MPLUS SIMP) ((MTIMES SIMP) -1 $UU) ((MABS SIMP) $UU)))
    ((MPLUS SIMP) -1 ((MTIMES SIMP) $UU ((MEXPT SIMP) ((MABS SIMP) $UU) -1))))
   ((MTIMES SIMP) ((MEXPT SIMP) $%E ((MPLUS SIMP) $UU ((MABS SIMP) $UU))) ((MPLUS SIMP) 1 ((MTIMES SIMP) $UU ((MEXPT SIMP) ((MABS SIMP) $UU) -1)))))
  0)
 (($EQUAL SIMP)
  ((MPLUS SIMP)
   ((MTIMES SIMP) ((MEXPT SIMP) $%E ((MPLUS SIMP) ((MTIMES SIMP) -1 $UU) ((MABS SIMP) $UU)))
    ((MPLUS SIMP) -1 ((MTIMES SIMP) $UU ((MEXPT SIMP) ((MABS SIMP) $UU) -1))))
   ((MTIMES SIMP) ((MEXPT SIMP) $%E ((MPLUS SIMP) $UU ((MABS SIMP) $UU))) ((MPLUS SIMP) 1 ((MTIMES SIMP) $UU ((MEXPT SIMP) ((MABS SIMP) $UU) -1)))))
  0))
(%i2) facts ();
(%o2)                       [notequal(abs(uu), 0)]


I can't figure out where the assumption is being introduced.

For the record, is(equal(foo, 0)) doesn't leak the assumption -- someone
(I can't see where) cleans it up, I guess.

Incidentally this bug is at the root of SF bug #2557.
http://sourceforge.net/p/maxima/bugs/2557/
It is tickled by "if notequal(df,0) ..." in
share/contrib/integration/partition.mac (line 89).

FWIW

Robert Dodier