code: private /*@ helper @*/ void trimLeadingZeros() {
          int i = nWords;
          if (i > 0 && (data[--i] == 0)) {
              //for (; i > 0 && data[i - 1] == 0; i--) ;
              while(i > 0 && data[i - 1] == 0) {
                  i--;
              }
              this.nWords = i;
              if (i == 0) { // all words are zero
                  this.offset = 0;
              }
          }
      }
docs: /*@
  @ requires data != null;
  @ requires 0 <= nWords && nWords <= data.length && offset >= 0;
  @ requires nWords == 0 ==> offset == 0;
  @ ensures nWords == 0 ==> offset == 0;
  @ ensures nWords > 0 ==> data[nWords - 1] != 0;
  @