Inductive stack_approx_rel (n:nat) : stack -> stack -> Prop :=
| stack_approx_nil : stack_approx_rel n nil nil
| stack_approx_cons : forall i i' stk stk',
instr_approx_rel n i i' ->
stack_approx_rel n stk stk' ->
stack_approx_rel n (i::stk) (i'::stk').

Lemma step_approxprog: forall n p1 p2 p1' p2' r1 s1 s1' r2 s2,
step p1 p2 r1 s1 r2 s2 ->
ageN n p1 p1' ->
ageN n p2 p2' ->
stack_approx_rel (S (level p1')) s1 s1' ->
exists s2',
step p1' p2' r1 s1' r2 s2' /\
stack_approx_rel (S (level p2')) s2 s2'.