*)
End KNOT__COVARIANT_HERED_PROP.
Module Type KNOT_INPUT__MIXVARIANT_HERED_PROP.
Parameter F : functor.
End KNOT_INPUT__MIXVARIANT_HERED_PROP.
Module Type KNOT__MIXVARIANT_HERED_PROP.
Declare Module KI : KNOT_INPUT__MIXVARIANT_HERED_PROP.
Parameter knot : Type.
Parameter ageable_knot : ageable knot.
Existing Instance ageable_knot.
Definition predicate := pred knot.
Parameter squash : (nat * F (pred knot)) -> knot.
Parameter unsquash : knot -> (nat * F (pred knot)).
Parameter approx : nat -> pred knot -> pred knot.

Axiom unsquash_squash : forall n x',
unsquash (squash (n,x')) = (n, fmap F (approx n) (approx n) x').