#pragma CIVL ACSL $input int M; $assume(0 < M); $input int N; $assume(0 < N); $input float A[M][N], B[M][N]; int main() { double C[M][N]; //@ loop assigns C[0..M-1][0..N-1]; //@ focus I | C[I][0..N-1]; for (int i = 0; i < M; i++) { //@ loop assigns C[i][0..N-1]; //@ focus J | C[i][J]; for (int j = 0; j < N; j++) { C[i][j] = A[i][j]+B[i][j]; } } //@ focus I J; $assert($forall(int i:0..M-1;int j:0..N-1) C[i][j] == A[i][j]+B[i][j]); }