I found that for most of my predicates, prolog finds multiple solutions, with one of them being the correct result, the other is 'false.'
To demontrate:
%finds the last element of list, or false if empty.
last([H|L], More):-
last(L, More).
last([H], H).
running this gives:
?- last([a, b, c], W).
W = c ;
false.
Can anyone explain why it is giving 'false.' in addition? Is this something I need to fix?