(** 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.