Module Type KNOT_BASIC.
Declare Module KI:KNOT_FULL_BASIC_INPUT.
Parameter knot: Type.
Parameter ageable_knot : ageable knot.
Existing Instance ageable_knot.
Parameter predicate: Type.
Parameter squash : (nat * F predicate) -> knot.
Parameter unsquash : knot -> (nat * F predicate).
Parameter approx : nat -> predicate -> predicate.

Axiom knot_age1 : forall k:knot,
age1 k =
match unsquash k with
| (O,_) => None
| (S n,x) => Some (squash (n,x))
end.