Module KI := Input.Module K0 := K0.Definition predicate : Type := pred K0.knot.Definition pkp: bijection predicate K0.predicate :=
      bij_sym
        ((sig_sig_iff_bij hered_hereditary) ooo
         (bij_sig
           (bij_sym (func_bij (unit_unit1 K0.knot) (bij_refl Prop)))
           K0.hered)).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)) -> knot := K.squash.Definition unsquash: knot -> (nat * KI.F (pred knot)) := K.unsquash.Definition approx: nat -> pred knot -> pred knot := K.approx.

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