Definition ag_nat : ageable nat :=
    mkAgeable nat natLevel natAge1 ag_nat_facts.

(* Specifications: *)
Lemma nec_nat : forall (n n':nat), @necR _ ag_nat n n' <-> n' <= n.
Lemma later_nat : forall (n n':nat), @laterR _ ag_nat n n' <-> n' < n.
Lemma laterR_level' {A} `{H : ageable A}: forall {w1 w2: A}, laterR w1 w2 -> @laterR _ ag_nat (level w1) (level w2).
Lemma necR_nat {A} `{H : ageable A}: forall {x y: A}, necR x y -> @necR nat ag_nat (level x) (level y).
Lemma age_bij_unage : forall x', exists x, age1B x = Some x'.
Lemma age_bij_level1 : forall x, age1B x = None <-> levelB x = 0.
Lemma age_bij_level2 : forall x y, age1B x = Some y -> levelB x = S (levelB y).
Lemma ag_bij_facts : ageable_facts B levelB age1B.