code: private void exo(final EncodingResult result, final Variable... vars) {
      if (vars.length == 0) {
        result.addClause();
        return;
      }
      if (vars.length == 1) {
        result.addClause(vars[0]);
        return;
      }
      this.amo(result, vars);
      result.addClause((Literal[]) vars);
    }
docs: Encodes an at-most-one constraint.
  @param result the result
  @param vars   the variables of the constraint