For example, suppose the knowledge base is:
addato(X,Y) <= Y is X+a. foo(X,Y) <= X is a+3 & assign(a,X) & Y is a+3.The query
ask arprove(addato(3,Y),[val(a,4),val(b,5),val(c,7)],E2).should return Y=7 and E=[val(a,4),val(b,5),val(c,7)].
The query
ask arprove(foo(X,Y),[val(a,4),val(b,5),val(c,7)],E2).should return X=7, Y=10, E2=[val(a,7),val(b,5),val(c,7)].