#include #ifdef _CIVL #include #pragma CIVL ACSL #endif #ifdef _CIVL $input int ni,nj; $assume(ni>0); //$assume(ni<10); $assume(nj>0); //$assume(nj<10); $input double uin[ni][nj]; #endif int main(int argc, char** argv) { int i,j,ir,jr; double u1[ni][nj]; double u2[ni][nj]; /*@ loop invariant 0 <= i && i <= ni; @ loop invariant \forall int t; 0 <= t && t < i ==> @ (\forall int k; 0 <= k && k < nj ==> @ u1[t][k] == 0 && u2[t][k] == 0); @ loop assigns u1[0 .. ni-1][0 .. nj-1], u2[0 .. ni-1][0 .. nj-1], i, j; @*/ for(i=0;i @ u1[i][k] == 0 && u2[i][k] == 0; @ loop assigns u1[i][0 .. nj-1], u2[i][0 .. nj-1], j; @*/ for(j=0;j