(** Properties of division *)

Lemma divs_mods_exists:
forall v1 v2,
Val.divs v1 v2 <> None \/ Val.mods v1 v2 <> None ->
exists nh nl d q r,
Val.shr v1 (Vint (Int.repr 31)) = Vint nh /\ v1 = Vint nl /\ v2 = Vint d
/\ Int.divmods2 nh nl d = Some(q, r)
/\ Val.divs v1 v2 = Some (Vint q) /\ Val.mods v1 v2 = Some (Vint r).