reverse([X|Y],Z,W) :- reverse(Y,[X|Z],W). reverse([],X,X). eqs([],L,L):-!. eqs(L,[],L):-!. eqs([E1|T1],[E2|T2],[E|Q]):-eqs(T1,T2,Q),E is E1+E2. equSum(E1,E2,ESum):-reverse(E1,[],Eq1),reverse(E2,[],Eq2),eqs(Eq1,Eq2,ES),reverse(ES,[],ESum).