Instance Canc_knot(Canc_F: forall A, Canc_alg (F A)) : Canc_alg knot.Instance Disj_knot(Disj_F: forall A, Disj_alg (F A)) : Disj_alg knot.

(* Specifications: *)
Lemma age_join1 : forall x y z x' : K'.knot, join x y z -> age x x' -> exists y' : K'.knot, exists z' : K'.knot, join x' y' z' /\ age y y' /\ age z z'.
Lemma age_join2 : forall x y z z' : K'.knot, join x y z -> age z z' -> exists x' : K'.knot, exists y' : K'.knot, join x' y' z' /\ age x x' /\ age y y'.
Lemma unage_join1 : forall x x' y' z', join x' y' z' -> age x x' -> exists y, exists z, join x y z /\ age y y' /\ age z z'.
Lemma unage_join2 : forall z x' y' z', join x' y' z' -> age z z' -> exists x, exists y, join x y z /\ age x x' /\ age y y'.
Theorem asa_knot : @Age_alg knot _ K.ag_knot.