End EXTEN.
Ltac splitall := repeat (match goal with |- _ /\ _ => split end).

Lemma valnum_reg_holds:
forall valu1 ge sp rs m n r n' v,
numbering_holds valu1 ge sp rs m n ->
valnum_reg n r = (n', v) ->
exists valu2,
numbering_holds valu2 ge sp rs m n'
/\ rs#r = valu2 v
/\ valu_agree valu1 valu2 n.(num_next)
/\ Plt v n'.(num_next)
/\ Ple n.(num_next) n'.(num_next).