Definition knot_level := K.knot_level.Definition knot_age1 := K.knot_age1.Module K' := KnotProp2Knot(K.TF)(K).Module KL := Knot_Lemmas(K').

(* Specifications: *)
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) Fp.
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.
Lemma unsquash_squash_unfolded : forall nf, unsquash (squash nf) = (fst nf, fmap F (approx (fst nf)) (snd nf)).
Lemma unsquash_approx_unfolded : forall k, unsquash k = (fst (unsquash k), fmap F (approx (fst (unsquash k))) (snd (unsquash k))).