Fixpoint composeOptN (A: Type) (f: A -> option A)
         (n: nat) (w: A) {struct n} : option A :=
 match n  with
 | S n' => match f w with Some w' => composeOptN A f n' w' | None => None end
 | O => Some w
 end.Definition ageN {A} `{ageable A}: nat -> A -> option A := composeOptN age1.

Lemma necR_laterR {A} `{agA : ageable A}: forall w1 w2 w3, necR w1 w2 -> laterR w2 w3 -> laterR w1 w3.