(** Invariance by assignment to registers. *)

(* Specifications: *)
Corollary frame_set_reg:
forall r v j sp ls ls0 parent retaddr m P,
m |= frame_contents j sp ls ls0 parent retaddr ** P ->
m |= frame_contents j sp (Locmap.set (R r) v ls) ls0 parent retaddr ** P.
Corollary frame_undef_regs:
forall j sp ls ls0 parent retaddr m P rl,
m |= frame_contents j sp ls ls0 parent retaddr ** P ->
m |= frame_contents j sp (LTL.undef_regs rl ls) ls0 parent retaddr ** P.
Corollary frame_set_regpair:
forall j sp ls0 parent retaddr m P p v ls,
m |= frame_contents j sp ls ls0 parent retaddr ** P ->
m |= frame_contents j sp (Locmap.setpair p v ls) ls0 parent retaddr ** P.
Corollary frame_set_res:
forall j sp ls0 parent retaddr m P res v ls,
m |= frame_contents j sp ls ls0 parent retaddr ** P ->
m |= frame_contents j sp (Locmap.setres res v ls) ls0 parent retaddr ** P.