module plists.

% prolog lists

append([],Xs,Xs).
append([X|Xs],Ys,[X|Zs]) <= append(Xs,Ys,Zs).

member(X,[X|_]).
member(X,[_|Ys]) <= member(X,Ys).

length([],0).
length([_|Xs],N) <= length(Xs,N1)
                 <= N is N1+1.

reverse([],[]).
reverse([X|Xs],Y) <= reverse(Xs,Zs)
                  <= append(Zs,[X],Y).

isEmpty([]).

