IntVar nbLoops = VariableFactory.bounded("nLoops", 0, n, solver);
return new Constraint("SubCircuit", ArrayUtils.append(
alldifferent(VARS).getPropagators(),
ArrayUtils.toArray(
new PropEqualXY_C(new IntVar[]{nbLoops, SUBCIRCUIT_SIZE}, n),
new PropKLoops(VARS, OFFSET, nbLoops),
new PropSubcircuit(VARS, OFFSET, SUBCIRCUIT_SIZE),
new PropSubcircuit_AntiArboFiltering(VARS, OFFSET),
new PropSubCircuitSCC(VARS, OFFSET)
)
));