(** ** Executing sequences of moves *)

(* Specifications: *)
Lemma tr_moves_init_regs:
forall F stk f sp m ctx1 ctx2, context_below ctx1 ctx2 ->
forall rdsts rsrcs vl pc1 pc2 rs1,
tr_moves f.(fn_code) pc1 (sregs ctx1 rsrcs) (sregs ctx2 rdsts) pc2 ->
(forall r, In r rdsts -> Ple r ctx2.(mreg)) ->
list_forall2 (val_reg_charact F ctx1 rs1) vl rsrcs ->
exists rs2,
star step tge (State stk f sp pc1 rs1 m)
E0 (State stk f sp pc2 rs2 m)
/\ agree_regs F ctx2 (init_regs vl rdsts) rs2
/\ forall r, Plt r ctx2.(dreg) -> rs2#r = rs1#r.