Hint Resolve loc_arguments_acceptable: locs.
(** The offsets of [Outgoing] arguments are below [size_arguments s]. *)
Remark size_arguments_32_above:
forall tyl ofs0, ofs0 <= size_arguments_32 tyl ofs0.
Remark size_arguments_64_above:
forall tyl ir fr ofs0,
ofs0 <= size_arguments_64 tyl ir fr ofs0.

(* Specifications: *)
Lemma size_arguments_above:
forall s, size_arguments s >= 0.
Lemma loc_arguments_32_bounded:
forall ofs ty tyl ofs0,
In (S Outgoing ofs ty) (regs_of_rpairs (loc_arguments_32 tyl ofs0)) ->
ofs + typesize ty <= size_arguments_32 tyl ofs0.
Lemma loc_arguments_64_bounded:
forall ofs ty tyl ir fr ofs0,
In (S Outgoing ofs ty) (regs_of_rpairs (loc_arguments_64 tyl ir fr ofs0)) ->
ofs + typesize ty <= size_arguments_64 tyl ir fr 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.