-
5 votesanswersviews
依赖于无符号整数溢出的代码的证明?
我应该如何证明代码的正确性,如下所示,为了避免一些低效率,依赖于模运算? #include <stdint.h> uint32_t my_add(uint32_t a, uint32_t b) { uint32_t r = a + b; if (r < a) return UINT32_MAX; return r; } 我已经尝试了WP... -
2 votesanswersviews
尽管有很强的证据,SMT证明者仍然会产生'unknown'
假设我们有以下C注释代码: #define L 3 int a[L] = {0}; /*@ requires \valid(a+(0..(L - 1))); ensures \forall int j; 0 <= j < L ==> (a[j] == j); */ int main() { int i = 0; /*@ loop assi...