(* Now for the main definitions and theorems *)

Definition f (k : K1.knot) : K2.knot := fst (fg (level k)) k.Definition g (k : K2.knot) : K1.knot := snd (fg (level k)) k.Definition fF : TF.F K1.predicate -> TF.F K2.predicate :=
  f_F' g.Definition gF : TF.F K2.predicate -> TF.F K1.predicate :=
  g_F' f.

Lemma g_unsquash : forall k2 U2, U2 = K2.unsquash k2 -> K1.unsquash (g k2) = (fst U2, gF (snd U2)).