Instance Join_knot : Join knot :=
           Join_preimage knot (nat * F predicate) Join_nat_F unsquash.Instance Perm_knot : Perm_alg knot :=
    Perm_preimage _ _ _ _ unsquash squash squash_unsquash unsquash_squash_join_hom.Instance Sep_knot(Sep_F: forall A, Sep_alg (F A)) : Sep_alg knot :=
    Sep_preimage _ _ _  unsquash squash squash_unsquash unsquash_squash_join_hom.

(* Specifications: *)
Lemma join_unsquash : forall x1 x2 x3, join x1 x2 x3 = join (unsquash x1) (unsquash x2) (unsquash x3).