code: private void checkModel(Model mo, boolean start) throws SatConstraintViolationException {
          for (SatConstraintChecker<?> c : checkers) {
              if (start && !c.startsWith(mo)) {
                  SatConstraint cs = c.getConstraint();
                  if (cs != null) {
                      throw new DiscreteViolationException(c.getConstraint(), mo);
                  }
              } else if (!start && !c.endsWith(mo)) {
                  SatConstraint cs = c.getConstraint();
                  if (cs != null) {
                      throw new DiscreteViolationException(c.getConstraint(), mo);
                  }
              }
          }
      }
docs: Check for the validity of a model.
  
  @param mo    the model to check
  @param start {@code true} iff the model corresponds to the origin model. Otherwise it is considered
  to be the resulting model
  @throws SatConstraintViolationException if at least one constraint is violated.