Hint Resolve loc_arguments_acceptable: locs.
(** The offsets of [Outgoing] arguments are below [size_arguments s]. *)
Remark size_arguments_hf_above:
forall tyl ir fr ofs0,
ofs0 <= size_arguments_hf tyl ir fr ofs0.
Remark size_arguments_sf_above:
forall tyl ofs0,
Z.max 0 ofs0 <= size_arguments_sf tyl ofs0.

(* Specifications: *)
Lemma size_arguments_above:
forall s, size_arguments s >= 0.
Lemma loc_arguments_hf_bounded:
forall ofs ty tyl ir fr ofs0,
In (S Outgoing ofs ty) (regs_of_rpairs (loc_arguments_hf tyl ir fr ofs0)) ->
ofs + typesize ty <= size_arguments_hf tyl ir fr ofs0.
Lemma loc_arguments_sf_bounded:
forall ofs ty tyl ofs0,
In (S Outgoing ofs ty) (regs_of_rpairs (loc_arguments_sf tyl ofs0)) ->
Z.max 0 (ofs + typesize ty) <= size_arguments_sf tyl ofs0.
Lemma loc_arguments_bounded:
forall (s: signature) (ofs: Z) (ty: typ),
In (S Outgoing ofs ty) (regs_of_rpairs (loc_arguments s)) ->
ofs + typesize ty <= size_arguments s.
Lemma loc_arguments_main:
loc_arguments signature_main = nil.