Files
cs220/assets/why3/assignment05/binary_search.mlw
2023-08-25 04:39:12 +00:00

24 lines
656 B
Plaintext

(* Binary search
A classical example. Searches a sorted array for a given value v.
Consult <https://gitlab.inria.fr/why3/why3/-/blob/master/examples/binary_search.mlw>.
*)
module BinarySearch
use int.Int
use int.ComputerDivision
use ref.Ref
use array.Array
let binary_search (a : array int) (v : int) : int
requires { forall i1 i2 : int. 0 <= i1 < i2 < length a -> a[i1] <= a[i2] }
ensures { 0 <= result <= length a }
ensures { forall i: int. 0 <= i < result -> a[i] < v }
ensures { forall i: int. result <= i < length a -> v <= a[i] }
=
(* IMPORTANT: DON'T MODIFY THE ABOVE LINES *)
0 (* TODO *)
end