solve(true). solve(Goal) :- clause(Goal, Body), solve(Body). solve((Body1, Body2)) :- solve(Body1), solve(Body2).