smallest([H], H). smallest([H|T], S) :- smallest(T, E), (H S is H; S is E).