class Multiply { //@ requires n>0; //@ ensures \result == m*n; int multiply(int m, int n) { int result = 0; int i = 0; //@ loop_invariant result == m*i && i>= 0 && i <= n && n>0; while (i < n) { result = add(result,m); i = i + 1; } return result; } //@ ensures \result == n+m; int add(int n, int m) { return n+m; } }