I need to change the vanilla meta-interpreter to perform a search with limited depth. I use the following code to test my resolution:
value(wire1,1). connected(wire2, wire1). connected(wire3, wire2). connected(wire4, wire3). connected(wire5, wire4). connected(wire6, wire5). connected(wire7, wire6). connected(wire8, wire7). connected(wire9, wire8). value(W,X):-connected(W,V), value(V,X).
And the goal is something like:
solve(value(w9,X), 3). solve(value(w9,X), 20).
By the way my code
solve(true,_):-!. solve((A,B),D) :-!, solve(A,D), solve(B,D). solve(A,D) :- clause(A, B),solve(B,D2),D=D2+1,D>0).
But that does not work. Could you help me? Thank you very much in advance