View source with raw comments or as raw
    1% subset(S1, S2) :-
    2%     not -subset(S1, S2).
    3
    4% -subset(S1, S2) :-
    5%     -member(X, S1), member(X,S2). 
    6
    7% -member(X, S) :- not member(X, S). 
    8
    9% member(X1, [X2|_]) :- X1 #= X2. 
   10% member(X, [_|R]) :- member(X, R). 
   11
   12superset(Y, L) :-
   13    findall(X, subset(X, Y), L). % didn't work
   14
   15subset([], _).
   16subset([X|R], S2) :-
   17    minus(X, S2, [], NS2),
   18    subset(R, NS2). 
   19
   20% minus(X, S1, [], NS1)
   21minus(X, [X|R], P, F) :-
   22    append(P, R, F). 
   23minus(X1, [X2|R], P, F) :- 
   24    X1 #<> X2,
   25    minus(X1, R, [X2|P], F). 
   26
   27append([], X, X).
   28append([U|X], Y, [U|Z]) :- append(X,Y,Z). 
   29
   30?- subset(X, [1,2,3]).   31
   32%?- superset([1,2], L).