:- use_module(library(tor_clpfd)).

go1 :- 
  allinterval(Vars),
  search(labeling([ff], Vars)).

allinterval(Vars) :-
  N = 9,
  N1 is N+1,
  length(Vars,N1),
  Vars ins 0..N,
  all_different(Vars),
  allinterval_differences(Vars,Diffs),
  all_different(Diffs).

allinterval_differences([_],[]) :- !.
allinterval_differences([X,Y|Zs],[D|Ds]) :-
  D #= abs(X - Y), 
  allinterval_differences([Y|Zs],Ds).