As some of you probably recognized, the "test case" on "pleasing ?x" at the end of task 1 has misplaced parentheses. The corrected version is as follows (I also changed the online version) > (setq rules1 '(((pleasing (? x)) if (red (? x)) (block (? x))) ((red block17)) ((block block17)) )) > (prolog '((pleasing (? x))) rules1) Rao