If some of the elements in the lists Starts or Flags is not ground, this predicate delays.
[eclipse 3]: [X, Y]::1..10, disjunctive([X, Y], [5, 7], F). X = X[1..10] Y = Y[1..10] F = [_g1124[1, 2]] Delayed goals: disjunction_choose_1(X[1..10], 5, Y[1..10], 7, _g1124[1, 2]) disjunctive(starts(X[1..10], Y[1..10]), durations(5, 7), [_g1124[1, 2]], flags(_g998, _g1124, _g1002, _g1004)) yes. [eclipse 3]: [X, Y, Z]::1..10, disjunctive([X, Y, Z], [3, 7, 5], [1, 2, 1]). no (more) solution. [eclipse 4]: [X, Y, Z]::1..10, disjunctive([X, Y, Z], [3, 7, 5], [1, 1, 2]). X = X[1, 2] Y = Y[9, 10] Z = Z[4, 5] Delayed goals: Y[9, 10] - X[1, 2]#>=3 Y[9, 10] - Z[4, 5]#>=5 Z[4, 5] - X[1, 2]#>=3 Z[4, 5] - X[1, 2]#>=3 disjunction_choose_1(X[1, 2], 3, Z[4, 5], 5, 1) disjunction_choose_1(X[1, 2], 3, Y[9, 10], 7, 1) disjunction_choose_1(Y[9, 10], 7, Z[4, 5], 5, 2) disjunctive(starts(X[1, 2], Y[9, 10], Z[4, 5]), durations(3, 7, 5), [1, 1, 2], flags(_g1080, 1, 1, _g1086, _g1088, 2, _g1092, _g1094, _g1096)) yes.