@Override
		public void previousDomainValid() {
			if (last == null) {
				throw new IllegalStateException("No previous domain.");
			}

			int center = last.getLower() + (last.getUpper() - last.getLower()) / 2;

			int lower1 = last.getLower();
			int upper1;
			int lower2;
			int upper2 = last.getUpper();

			if (center == last.getUpper()) {
				upper1 = center - 1;
				lower2 = center;
			} else {
				upper1 = center;
				lower2 = center + 1;
			}

			if (lower1 <= upper1 && (lower1 != last.getLower() || upper1 != last.getUpper())) {
				candidates.add(new Interval(lower1, upper1));
			}

			if (lower2 <= upper2 && (lower2 != last.getLower() || upper2 != last.getUpper())) {
				candidates.add(new Interval(lower2, upper2));
			}

			last = null;
		}