Specification test¶
module Spec.Test
It’s really important to put spec tests in a separate module. Putting them
in Spec.Bignum
would mean their encoding in the SMT solver would be fed
every time to Z3, polluting the context and slowing proofs down. Don’t do that!
module S = FStar.Seq
module Spec = Spec.Bignum
open FStar.All
let test_v_vectors = [
[ 4020757606ul; 24784186ul ], 106447272348738662;
[ 1154478784ul; 20791736ul ], 89299827301544640
]
let test_v arg: ML _ =
let s, v = arg in
if Spec.v (S.seq_of_list s) <> v then
failwith ("Spec.v is not equal to expected value " ^ string_of_int v)
let test (): ML _ =
List.iter test_v test_v_vectors