Definition pkp: bijection predicate K0.predicate :=
(bij_sym (sig_sig_iff_bij hered_hereditary)) ooo
(bij_sym (sig_sigsig_bij (hereditary age) _)) ooo
(sig_sig_iff_bij boxy_expand_spec).
End Output.
Module K := knot_full_variant.KnotFull(Input)(Output).
Definition knot := K.knot.
Definition ageable_knot := K.ageable_knot.
Definition squash: (nat * KI.F assert) -> knot := K.squash.
Definition unsquash: knot -> (nat * KI.F assert) := K.unsquash.
Definition approx: nat -> assert -> assert := K.approx.

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