code: private static void leftShift(int[] src, int idx, int result[], int bitcount, int anticount, int prev){
          for (; idx > 0; idx--) {
              int v = (prev << bitcount);
              prev = src[idx - 1];
              v |= (prev >>> anticount);
              result[idx] = v;
          }
          int v = prev << bitcount;
          result[0] = v;
      }
docs: /*@
  @ requires 0 < bitcount && bitcount < 32 && anticount == 32 - bitcount;
  @ requires src.length >= idx && result.length > idx;
  @ assignable result[*];
  @ ensures AP(result, \old(idx + 1)) == \old((AP(src, idx) + UNSIGNED(prev) << (idx*32)) << bitcount);
  @