likes(ann,X) :- toy(X), plays(ann,X). likes(sue,X) :- likes(ann,X). toy(doll). toy(snoopy). plays(ann,snoopy). ?- trace. ?- likes(sue,X). Call: (7) likes(sue, _G442) ? creep Call: (8) likes(ann, _G442) ? creep Call: (9) toy(_G442) ? creep Exit: (9) toy(doll) ? creep Call: (9) plays(ann, doll) ? creep Fail: (9) plays(ann, doll) ? creep Redo: (9) toy(_G442) ? creep Exit: (9) toy(snoopy) ? creep Call: (9) plays(ann, snoopy) ? creep Exit: (9) plays(ann, snoopy) ? creep Exit: (8) likes(ann, snoopy) ? creep Exit: (7) likes(sue, snoopy) ? creep X = snoopy Yes