Fixpoint composeOptN' {A} (f : A -> option A) n x :=
  match n with
  | 0 => Some x
  | S n =>
    match composeOptN' f n x with
    | Some y => f y
    | None => None
    end
  end.

Lemma age_by_ageN {A} `{agA : ageable A} n (x : A) : n <= level x -> ageN n x = Some (age_by n x).