code: private boolean checkIfThenConditionsMet(List<Integer> rGroupNumbers, List<Integer[]> distributions) {
          for (int outer = 0; outer < rGroupNumbers.size(); outer++) {
              int rgroupNum = rGroupNumbers.get(outer);
              if (allZeroArray(distributions.get(outer))) {
                  for (int inner = 0; inner < rGroupNumbers.size(); inner++) {
                      int rgroupNum2 = rGroupNumbers.get(inner);
                      if (!allZeroArray(distributions.get(inner))) {
                          RGroupList rgrpList = rGroupDefinitions.get(rgroupNum2);
                          if (rgrpList.getRequiredRGroupNumber() == rgroupNum) {
                              logger.info(" Rejecting >> all 0 for " + rgroupNum + " but requirement found from "
                                      + rgrpList.getRGroupNumber());
                              return false;
                          }
                      }
                  }
              }
          }
          return true;
      }
docs: Checks whether IF..THEN conditions that can be set for the R-groups are met.
  It is used to filter away invalid configurations in {@link #findConfigurationsRecursively}.
  <P>
  Scenario: suppose R1 is substituted 0 times, whereas R2 is substituted.
  Also suppose there is a condition IF R2 THEN R1. Because R1 does not
  occur but R2 does, the IF..THEN condition is not met: this function
  will return false, the configuration should be discarded.
  @param rGroupNumbers
  @param distributions
  @return true if all IF..THEN RGroup conditions are met.