code: public static <E> int exponentialSearchBwd(AbstractCounterexample<E> acex, int low, int high) {
          assert !acex.testEffects(low, high);
  
          int ofs = 1;
          E effHigh = acex.effect(high);
  
          int highIter = high;
          int lowIter = low;
  
          while (highIter - ofs > lowIter) {
              int next = highIter - ofs;
              E eff = acex.effect(next);
              if (!acex.checkEffects(eff, effHigh)) {
                  lowIter = next;
                  break;
              }
              highIter = next;
              ofs *= 2;
          }
  
          return binarySearchRight(acex, lowIter, highIter);
      }
docs: Search for a suffix index using an exponential search.
  
  @param acex
  the abstract counterexample
  @param low
  the lower bound of the search range
  @param high
  the upper bound of the search range
  
  @return an index <code>i</code> such that <code>acex.testEffect(i) != acex.testEffect(i+1)</code>