dif(X, Y) :- X \== Y,
( X \= Y -> true
; term_variables(X, XVars), term_variables(Y, YVars),
- ( XVars == [], YVars == [] -> false
- ; dif_set_variables(XVars, X, Y),
- dif_set_variables(YVars, X, Y)
- )
+ dif_set_variables(XVars, X, Y),
+ dif_set_variables(YVars, X, Y)
).
gather_dif_goals(Attrs, _) :-
gather_dif_goals(Attrs, OldGoal),
( var(OldGoal), !, Goal = dif(X, Y)
; !, Goal = (dif(X, Y), OldGoal)
- ).
+ ).
gather_dif_goals([_ | Attrs], Goal) :-
gather_dif_goals(Attrs, Goal).