less1(Old, [Old|T ], T ).
less1(Old, [H  |T0], [H  |T1]) :- less1(Old,T0,T1).
 
printPairs(L) :- nl,printPairs(L,'|    ',[]),nl.

printPairs(X,Pad,Padding) :- 
	once(printPairs1(X,Pad,Padding)).

printPairs1(X,_,_) :- 
	var(X),
	write('?').
printPairs1(X=Y,Pad,Padding) :- 
	nl,
	forall(member(P,Padding),print(P)),
	write(X), write(' = '),
	printPairs(Y,Pad,[Pad|Padding]).
printPairs1([],_,_). 
printPairs1([H|T],Pad,Padding) :- 
	printPairs(H,Pad,Padding), 
	printPairs(T,Pad,Padding).
printPairs1(X,_,_) :- write(X), write(' ').


