(0) Obligation:

Clauses:

subset(X, Y) :- subsetchecked(X, [], Y).
subsetchecked([], X1, X2).
subsetchecked(.(X, Xs), Ys, Zs) :- ','(member(X, Zs), ','(not_member(X, Ys), subsetchecked(Xs, .(X, Ys), Zs))).
member(X, .(X, X3)).
member(X, .(X4, Xs)) :- member(X, Xs).
not_member(X, Y) :- ','(member(X, Y), ','(!, failure(a))).
not_member(X5, X6).
failure(b).

Queries:

subset(a,g).