Mock-up html manual page



freeof(x,'('integrate(1,x,0,y))) => true   OK
freeof(x,'(integrate(1,x,0,y))) => false  Oops

Same thing for other verbs.  Easy to correct.

Also fixes 1079508 (correctly).

Can someone else test this please?

(defun freeof (var e) 
  (cond ((alike1 var e) nil)
	((atom e) t)
	((and (not argsfreeofp) (alike1 var (caar e))) nil)
	((and (or (memq (caar e) '(%product %sum %laplace
				   $product $sum $laplace))
		  (and (memq (caar e) '(%integrate $integrate))
		       (cdddr e))
		  (and (memq (caar e) '(%limit $limit)) (cddr e)))
	      (alike1 var (caddr e)))
	 (freeofl var (cdddr e)))
	((memq (caar e) '(%at $at))
	 (cond ((not (freeofl var (hand-side (caddr e) 'r))) nil)
	       ((not (freeofl var (hand-side (caddr e) 'l))) t)
	       (t (freeof var (cadr e)))))
	((and (eq (caar e) 'lambda) (memq var (cdadr e))) t)
	((and (eq (caar e) 'mblock) ($listp (cadr e)))
	 (mapand (lambda (binding)
		   (if (atom binding)
		       (eq binding var)
		     (and (eq (caar binding) 'msetq)
			  (eq (cadr binding) var))))
		 (cadr e)))
	(argsfreeofp (freeofl var (margs e)))
	(t (freeofl var (cdr e)))))