/* Commandline execution: * civl verify -inputN_BOUND=3 -inputM_BOUND=3 gaussElim.cvl * */ #include $input int N_BOUND = 3; // bound on the number of rows $input int M_BOUND = 3; // bound on the number of columns $input int N; // number of rows $input int M; // number of columns $assume(N>0 && N0 && M= M) { break; } /* At this point we are guaranteed that pivot = A[pivotRow,col] is * nonzero. We also know that all the columns of B to the left of * col consist entirely of zeros. */ /* Step 2: Interchange the top row with the pivot row, if * necessary, so that the entry at the top of the column found in * Step 1 is nonzero. */ if (pivotRow != top) { for (j = 0; j < M; j++) { tmp = matrix[top*M + j]; matrix[top*M + j] = matrix[pivotRow*M + j]; matrix[pivotRow*M + j] = tmp; } } /* At this point we are guaranteed that A[top,col] = pivot is * nonzero. Also, we know that (i>=top and j