:- dynamic null/1, components/3, membertest/2.


foil_predicates([ null/1, components/3, membertest/2]).
foil_cwa(true).
foil_use_negations(false).        % Don't use negations of foil_predicates
foil_det_lit_bound(0).            % Don't add any determinate literals
                                  % In general, this is a depth limit on
			                % he search for determinate literals

% Note that this example is due to Quinlan 90, but it cannot be
% processed correctly ! On the other hand the example foil_4.pl works
% as expected !

% Definitions of background predicates
null([]).

components([[a]], [a], []).
components([b, [a], d], b, [[a], d]).
components([[a],d], [a], [d]).
components([d], d, []).
components([e|f], e, f).

membertest(a,[a, b, [c]]).
membertest(b,[a, b, [c]]).
membertest([c],[a, b, [c]]).
membertest(b,[b, [c]]).
membertest([c],[b, [c]]).
membertest([c],[[c]]).

