Module K := knot_full_variant.KnotFull(Input)(Output).
Definition knot := K.knot.
Definition ageable_knot := K.ageable_knot.
Definition squash: (nat * KI.F assert) -> knot := K.squash.
Definition unsquash: knot -> (nat * KI.F assert) := K.unsquash.
Definition approx: nat -> assert -> assert := K.approx.
Definition squash_unsquash := K.squash_unsquash.
Definition unsquash_squash := K.unsquash_squash.
Definition knot_age1 := K.knot_age1.
Definition knot_level := K.knot_level.
Definition knot_rel (k1 k2:knot) :=
let (n,f) := unsquash k1 in
let (n',f') := unsquash k2 in
n = n' /\ KI.Rel assert f f'.

Lemma expandM_spec : forall k k' o o',
expandM (k,o) (k',o') = (K.knot_rel k k' /\ KI.ORel o o').