Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > 4a989cf09a4b4c5f3273c280e92c6313 > files > 59

why-2.23-2.fc13.i686.rpm

/*@ requires 
  @   x >= 0 && y > 0
  @ ensures 
  @   0 <= \result < y &&
  @   \exists int d; x == d * y + \result
  @*/
int math_mod(int x, int y) { 
  /*@ invariant 0 <= x && \exists int d; \old(x) == d * y + x
    @ variant x
    @*/
  while (x >= y) x -= y;
  return x;
}