code: private LNGVector<Variable> initializeConstraint(final EncodingResult result, final Variable[] vars) {
      result.reset();
      this.result = result;
      this.cardinalityInvars = new LNGVector<>(vars.length);
      final LNGVector<Variable> cardinalityOutvars = new LNGVector<>(vars.length);
      for (final Variable var : vars) {
        this.cardinalityInvars.push(var);
        cardinalityOutvars.push(this.result.newVariable());
      }
      return cardinalityOutvars;
    }
docs: Initializes the constraint.
  @param vars the variables
  @return the auxiliary variables