Definition ageable_knot : ageable knot :=
    mkAgeable knot knot_level_def knot_age1_def ag_knot_facts.Definition knot_rel (k1 k2:knot) :=
    let (n,f) := unsquash k1 in
    let (n',f') := unsquash k2 in
    n = n' /\ Rel predicate f f'.

(* Specifications: *)
Lemma hered_spec : forall p, hered p = (forall k k' k'' o o', clos_refl_trans _ age k k' -> knot_rel k' k'' -> ORel o o' -> T_rel (p (k,o)) (p (k'',o'))).
Lemma knot_age1 : forall k:knot, age1 k = match unsquash k with | (O,_) => None | (S n,x) => Some (squash (n,x)) end.
Lemma knot_level : forall k:knot, level k = fst (unsquash k).