Definition assert := { p:pred (K0.knot * KI.other) | boxy expandM p }.
Module Output <: knot_full_variant.KNOT_FULL_OUTPUT with Module KI := Input.
Module KI := Input.
Module K0 := K0.
Definition predicate: Type := assert.

Lemma hered_hereditary : forall (p:K0.knot*KI.other -> Prop),
K0.hered p <->
(hereditary age p /\ (fun p:K0.knot*KI.other -> Prop => forall x y, expandR x y -> p x -> p y) p).