app([],Ys,Ys). app([A|Xs],Ys,[A|Zs]):- app(Xs,Ys,Zs). nrev([],[]). nrev([X|Xs],R):- nrev(Xs,T), app(T,[X],R). full_range(It,L):- range(_,1,It),nrev(L,_), fail. full_range(_,_). dummy(_,_). empty_range(It,L):-range(_,1,It),dummy(L,_),fail. empty_range(_,_). range(Min,Min,Max):-Min=