Section EXTEN.
Variable valu1: valuation.
Variable upto: valnum.
Variable valu2: valuation.
Hypothesis AGREE: valu_agree valu1 valu2 upto.
Variable ge: genv.
Variable sp: val.
Variable rs: regset.
Variable m: mem.
End EXTEN.
Ltac splitall := repeat (match goal with |- _ /\ _ => split end).

Lemma valnum_regs_holds:
forall rl valu1 ge sp rs m n n' vl,
numbering_holds valu1 ge sp rs m n ->
valnum_regs n rl = (n', vl) ->
exists valu2,
numbering_holds valu2 ge sp rs m n'
/\ rs##rl = map valu2 vl
/\ valu_agree valu1 valu2 n.(num_next)
/\ (forall v, In v vl -> Plt v n'.(num_next))
/\ Ple n.(num_next) n'.(num_next).