<cl> (gensym "abc") #:|abc2| <cl> (gensym "abc") #:|abc3| <cl> (gensym "abc") #:|abc4|このgensymにより新たな変数を作り, ホーン節内にある論理変数との連想リストを作り, もとのホーン節をsublisすると目的とするものが得られる.
(defun rename-variables (x) (sublis (mapcar #'(lambda (var) (cons var (gensym (string var)))) (variables-in x)) x))
<cl> (variables-in '(<- (carnivore ?x) (human ?x) (eat ?x meat))) (?X) <cl> (rename-variables '(<- (carnivore ?x) (human ?x) (eat ?x meat))) (<- (CARNIVORE #:?X26) (HUMAN #:?X26) (EAT #:?X26 MEAT))