10 Find(value_type* a, integer m, integer n, value_type v) =
12 0 : ((0 <= Find(a, m, n-1, v) < n-m-1) ?
13 Find(a, m, n-1, v) : ((a[n-1] == v) ? n-m-1 : n-m));
16 Find(value_type* a, integer n, value_type v) = Find(a, 0, n, v);
20 \forall value_type *a, v, integer m, n;
21 n <= m ==> Find(a, m, n, v) == 0;
25 \forall value_type *a, v, integer m, n;
27 Find(a, m, n, v) < n-m ==>
28 Find(a, m, n+1, v) == Find(a, m, n, v);
32 \forall value_type *a, v, integer m, n;
35 Find(a, m, n, v) == n-m ==>
36 Find(a, m, n+1, v) == n-m;
40 \forall value_type *a, v, integer m, n;
43 Find(a, m, n, v) == n-m ==>
44 Find(a, m, n+1, v) == (n+1)-m;
48 \forall value_type *a, v, integer m, n;
49 0 <= Find(a, m, n, v);
53 \forall value_type *a, v, integer m, n;
54 m <= n ==> Find(a, m, n, v) <= n-m;
57 Find_WeaklyIncreasing:
58 \forall value_type *a, v, integer m, n;
59 m <= n ==> Find(a, m, n, v) <= Find(a, m, n+1, v);
63 \forall value_type *a, v, integer k, m, n;
65 Find(a, m, k, v) <= Find(a, m, n, v);
69 \forall value_type *a, v, integer k, m, n;
72 Find(a, m, k, v) == k-m ==>
73 Find(a, m, n, v) == k-m;
77 \forall value_type *a, v, integer k, m, n;
80 Find(a, m, n, v) <= k-m;
84 \forall value_type *a, v, integer m, n;
86 NoneEqual(a, m, n, v) ==>
87 Find(a, m, n, v) == n-m;
91 \forall value_type *a, v, integer k, m, n;
94 NoneEqual(a, m, k, v) ==>
95 Find(a, m, n, v) == k-m;
99 \forall value_type *a, v, integer m, n;
100 m <= n ==> NoneEqual(a, m, m + Find(a, m, n, v), v);
104 \forall value_type *a, v, integer m, n;
105 0 <= Find(a, m, n, v) < n-m ==>
106 a[m + Find(a, m, n, v)] == v;