Definition knot_rel (k1 k2:knot) :=
    let (n,f) := unsquash k1 in
    let (n',f') := unsquash k2 in
    n = n' /\ KI.Rel predicate f f'.

(* Specifications: *)
Lemma knot_rel_spec: forall k1 k2: knot, knot_rel k1 k2 = KO.K0.knot_rel k1 k2.
Lemma unsquash_inj : forall k1 k2, unsquash k1 = unsquash k2 -> k1 = k2.
Lemma squash_surj : forall k, exists n, exists Fp, squash (n, Fp) = k.
Lemma unsquash_approx : forall k n Fp, unsquash k = (n, Fp) -> Fp = fmap F (approx n) (approx n) Fp.
Lemma pred_ext : forall (p1 p2:predicate), (forall x, proj1_sig (bij_f _ _ KO.pkp p1) x = proj1_sig (bij_f _ _ KO.pkp p2) x) -> p1 = p2.
Lemma approx_approx1 : forall m n, approx n = approx n oo approx (m+n).
Lemma approx_approx2 : forall m n, approx n = approx (m+n) oo approx n.