Module KI := Input.Module K0 := K0.Definition predicate : Type := pred (K0.knot * KI.other).Definition pkp: bijection predicate K0.predicate :=
      bij_sym (sig_sig_iff_bij hered_hereditary).Module K := knot_full_variant.KnotFull(Input)(Output).Definition knot := K.knot.Definition ageable_knot := K.ageable_knot.Definition squash: (nat * KI.F (pred (knot*KI.other))) -> knot := K.squash.Definition unsquash: knot -> (nat * KI.F (pred (knot*KI.other))) := K.unsquash.Definition approx: nat -> pred (knot*KI.other) -> pred (knot*KI.other) :=
    K.approx.

(* Specifications: *)
Lemma approx_spec : forall n p k, approx n p k = (level (fst k) < n /\ p k).