void abort() { }; /*@ requires (1); ensures ((\result == ((long long) n + m))); @*/ int sum(int n, int m) { if (n <= 0) { return m + n; } else { return sum(n - 1, m + 1); } } int main() { int a = 20; int b = 0; int result = sum(a, b); if (result != a + b) { ERROR: {/*@ assert(0); */;abort();} } }