solve bug



> From: Barton Willis
> 
> proposed replacement for easy-cases
> 
> (DEFUN EASY-CASES (*EXP *VAR)
>       (COND ((OR (ATOM *EXP) (ATOM (CAR *EXP))) NIL)
>             ((EQ (CAAR *EXP) 'MTIMES)
>              (DO ((TERMS (CDR *EXP) (CDR TERMS)))
>                  ((NULL TERMS))
>                  (SOLVE (CAR TERMS) *VAR 1))
>              'MTIMES)))
>
> ;; This code is commented out because it exposes a bug in the way
> ;; solve (or its friends) handles multiplicities. A previous 
> ;; version (1.2) had a typo (caar *exp) 'mexp ...) that prevented this
> ;; bug from manifesting.  Barton Willis, 12 May 2004
> 
> ;;           ((EQ (CAAR *EXP) 'MEXPT)
> ;;            (COND ((AND (INTEGERP  (CADDR *EXP))
> ;;                        (PLUSP (CADDR *EXP)))
> ;;                   (SOLVE (CADR *EXP) *VAR (CADDR *EXP))
> ;;                   'MEXPRAT)))))
>
> Barton

I have tested this and there are no regressions in the testsuite or in my
ode tests.  I don't feel qualified to review the code, but can commit it
if someone approves it.

	David