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.
Implicit Arguments ageN_det.

Lemma ageN_necR: forall p1 p2,
(exists n, ageN n p1 p2) = necR p1 p2.