2 module BinaryMultiplication
9 let useless (x:int) ensures { result > x }
12 let lemma also_useless (x:int)
14 ensures { x + 1 >= 2 }
17 let binary_mult (a b: int)
19 ensures { result = a * b }
25 invariant { !z + !x * !y = a * b }
27 if !y % 2 <> 0 then z := !z + !x;