int search(int x, int[] A, int n) //@requires n == \length(A); //@requires is_sorted(A, 0, n); /*@ensures (\result == -1 @ && !is_in(x, A, 0, n)) @ || (0 <= \result && \result < n @ && A[\result] == x); @*/ { for (int j = 0; j < n; j++) //@loop_invariant 0 <= j && j <= n; //@loop_invariant gt_seg(x, A, 0, j); { if (A[j] == x) return j; if (A[j] > x) return -1; //@assert A[j] < x; } return -1; }