boolean () { List<ConstraintFormula> newConstraints = new ArrayList<>(); for (int i = myConstraintIdx; i < myConstraints.size(); i++) { ConstraintFormula constraint = myConstraints.get(i); if (!constraint.reduce(this, newConstraints)) { return false; } } myConstraintIdx = myConstraints.size(); for (ConstraintFormula constraint : newConstraints) { addConstraint(constraint); } return true; }