firstPairThen([X,X|T],T). firstPair([X,X|_]). dupList([],[]). dupList([X|T],[X,X|R]):-dupList(T,R). isDuped([]). isDuped([X,X|T]):-isDuped(T). isDup(L) :- dupList(_,L). firstP(L) :- firstPairThen(L,_). onePair(L) :- firstPairThen(L,[]). isD([]). isD(L) :- firstPairThen(L,T), isD(T). oneOrMoreThen([X|T],X,T). oneOrMoreThen([X|T],X,T2) :- oneOrMoreThen(T,X,T2). oddSize([_]). oddSize([_,_|T]) :- oddSize(T).