Module Type KNOT_HERED.
Declare Module TF:TY_FUNCTOR_PROP.
Parameter knot:Type.
Parameter ag_knot : ageable knot.
Existing Instance ag_knot.
Existing Instance ag_prod.
Definition predicate := pred (knot * other).
Parameter squash : (nat * F predicate) -> knot.
Parameter unsquash : knot -> (nat * F predicate).
Parameter approx : nat -> predicate -> predicate.

Axiom approx_spec : forall n p k,
proj1_sig (approx n p) k = (level k < n /\ proj1_sig p k).