Function level' (x:A) { wf (fun x y => @age A ag y x)  x } : nat :=
(*  Function level' (x:A) { wf (transp _ (@age A ag)) x } : nat := *)
    match age1 x with
    | None => 0
    | Some x' => S (level' x')
    end.

Lemma levelS_age1 {A} `{ageable A} : forall (x:A) n, level x = S n -> exists y, age1 x = Some y.