View source with raw comments or as raw
    1% Natural numbers (piano representation)
    2
    3s(0).
    4s(s(X)) :-
    5    s(X).
    6
    7sum(s(0), X, s(X)).
    8sum(X, s(0), s(X)).
    9sum(s(X), Y, s(Z)) :-
   10    X \= 0,
   11    sum(X, Y, Z).
   12
   13sumlist([X | T], [Y | T2], [Z | T3]) :-
   14    sum(X, Y, Z),
   15    sumlist(T, T2, T3).
   16sumlist([], [], []).
   17
   18?- sumlist([s(s(0)), s(s(s(0)))], [s(s(s(0))), s(s(s(0)))], X).