Definition knot_level := Knot_G.knot_level.Definition knot_age1 := Knot_G.knot_age1.Module TF := TyFunctorProp2TyFunctor(K.TF).Definition knot : Type := K.knot.Definition predicate := (knot * other) -> T.Definition ag_knot : ageable knot :=
    K.ag_knot.Definition squash : (nat * F predicate) -> knot :=
    K.squash.Definition unsquash : knot -> (nat * F predicate) :=
    K.unsquash.Definition approx (n:nat) (p:predicate) : predicate :=
     fun w => if le_gt_dec n (level w) then T_bot else p w.

(* Specifications: *)
Lemma squash_unsquash : forall x, squash (unsquash x) = x.
Lemma unsquash_squash : forall n x', unsquash (squash (n,x')) = (n,fmap F (approx n) x').