Instance CompSpecs : compspecs.

(* Specifications: *)
Lemma Zlength_map2: forall A B C (f: A -> B -> C) fy fz,
Zlength fy = Zlength fz -> Zlength (map2 f fy fz) = Zlength fy.
Lemma Znth_map2:
forall A B C (a: Inhabitant A) (b: Inhabitant B) (c: Inhabitant C) (f: A -> B -> C) (al: list A) (bl: list B) i,
Zlength al = Zlength bl ->
0 <= i < Zlength al ->
Znth i (map2 f al bl) = f (Znth i al) (Znth i bl).
Lemma body_dotprod:  semax_body Vprog Gprog f_dotprod dotprod_spec.
Lemma body_add:  semax_body Vprog Gprog f_add add_spec.
Definition Svector_add (n: Z) (_i _x _y _z : ident) :=
Ssequence (Sset _i (Econst_int (Int.repr 0) tint))
(Sloop
(Ssequence
(Sifthenelse
(Ebinop Olt (Etempvar _i tint) (Econst_int (Int.repr n) tint) tint)
Sskip
Sbreak)
(Sassign
(Ederef
(Ebinop Oadd (Etempvar _x (tptr tdouble)) (Etempvar _i tint)
(tptr tdouble)) tdouble)
(Ebinop Oadd
(Ederef
(Ebinop Oadd (Etempvar _y (tptr tdouble))
(Etempvar _i tint) (tptr tdouble)) tdouble)
(Ederef
(Ebinop Oadd (Etempvar _z (tptr tdouble))
(Etempvar _i tint) (tptr tdouble)) tdouble) tdouble)))
(Sset _i
(Ebinop Oadd (Etempvar _i tint) (Econst_int (Int.repr 1) tint)
tint))).
Lemma body_g:  semax_body Vprog Gprog f_g g_spec.
Lemma FSb_range: forall i,
Int.unsigned (Znth i FSb Int.zero) <= Byte.max_unsigned.