#include #pragma CIVL ACSL $input int N; $assume(0 < N); $input int X; $assume(0 <= X); int a[N]; int b[N+X]; int main() { //@ focus A; for (int i = 0; i < N; i++) { a[i] = i+1; } //@ focus A; for (int i = 0; i < N; i++) { b[i+X] = i; } //@ focus B; for (int i = 0; i <= X; i++) { b[i] = i; } //@ focus B; $assert($forall(int i:0..X) b[i] == i); //@ focus A; for (int i = 0; i < N; i++) { a[i] = a[i] * b[i+X]; } //@ focus A; $assert($forall(int i:0..N-1) (i == 0 => a[i] == X) && (i > 0 => a[i] == (i+1)*i)); }