Open Scope pred.
(* Various utility lemmas *)
Fixpoint ageN (n : nat) (p1 p2 : prog) : Prop :=
match n with
| 0 => p1 = p2
| S n' => exists p', age p1 p' /\ ageN n' p' p2
end.

Lemma ageN_det: forall n p1 p2 p2',
ageN n p1 p2 ->
ageN n p1 p2' ->
p2 = p2'.