4 find(const value_type* a, size_type n, value_type v)
7 loop invariant 0 <= i <= n;
8 loop invariant \forall integer k; 0 <= k < i ==> a[k] != v;
12 for (size_type i = 0u; i < n; i++) {
21 find2(const value_type* a, size_type n, value_type v)
24 loop invariant bound: 0 <= i <= n;
25 loop invariant not_found: NoneEqual(a, i, v);
29 for (size_type i = 0u; i < n; i++) {
38 find3(const value_type* a, size_type n, value_type v)
41 loop invariant bound: 0 <= i <= n;
42 loop invariant not_found: Find(a, i, v) == i;
46 for (size_type i = 0u; i < n; i++) {
48 //@ assert found: Find(a, n, v) == i;