question about 'is', 'compare'



I *did* attach the file, but for some reason it is not appearing -- gmail
glitch?

Anyway, here it is in line:

(defun signdiff-special (xlhs xrhs)
  (when (or (and (numberp xrhs) (minusp xrhs)
         (not (atom xlhs)) (eq (sign* xlhs) '$pos))
                    ; e.g. sign(a^3+%pi-1) where a>0
        (and (mexptp xlhs)
         ;; e.g. sign(%e^x-1) where x>0
         (eq (sign* (caddr xlhs)) '$pos)
         (or (and
              ;; Q^Rpos - S, S<=1, Q>1
              (memq (sign* (sub 1 xrhs)) '($pos $zero $pz))
              (eq (sign* (sub (cadr xlhs) 1)) '$pos))
             (and
              ;; Qpos ^ Rpos - Spos => Qpos - Spos^(1/Rpos)
              (eq (sign* (cadr xlhs)) '$pos)
              (eq (sign* xrhs) '$pos)
              (eq (sign* (sub (cadr xlhs)
                      (power xrhs (div 1 (caddr xlhs)))))
              '$pos))))
        (and (mexptp xlhs) (mexptp xrhs)
         ;; Q^R - Q^T, Q>1, (R-T) > 0
         ;; e.g. sign(2^x-2^y) where x>y
         (alike1 (cadr xlhs) (cadr xrhs))
         (eq (sign* (sub (cadr xlhs) 1)) '$pos)
         (eq (sign* (sub (caddr xlhs) (caddr xrhs))) '$pos)))
    (setq sign '$pos minus nil odds nil evens nil)
    t)
  )