View source with formatted comments or as raw
    1subset(S1, S2) :-
    2    forall(X, contained(X, S1, S2)). 
    3
    4contained(X, S1, S2) :-
    5    member(X, S1), member(X, S2).
    6contained(X, S1, S2) :-
    7    member(X, S2), not member(X, S1). 
    8
    9member(X1, [X2|_]) :- X1 #= X2. 
   10member(X, [_|R]) :- member(X, R).
   11
   12?- subset([1], [1,3]).