app1([],[1,2,3],[1,2,3]) :- [app([],[1,2,3],[1,2,3])].
app1([1,2,3],[],[1,2,3]) :- [app([1,2,3],[],[1,2,3])].
app1([1,2],[3],[1,2,3]) :- [app([1,2],[3],[1,2,3])].
app1([1],[2,3],[1,2,3]) :- [app([1],[2,3],[1,2,3])].
p2(10,A) :- [r2(10,A)].
p2(5,A) :- [q2(5,A), r2(5,A)].
p(A,fff(B,C)) :- [r(D), r(fff(B,C),t(D))].
p(f(88,ggg(A,555,B,8)),C) :- [r(h(D,E,F)), q(ggg(A,555,B,8),f(h(D,E,F),g(fff(G))))].
r2(A,B) :- [q2(A,B)].
reverse([A,B,C],[C,B,A]) :- [reverse([B,C],[C,B]), app([C,B],[A],[C,B,A])].
