Section Path.
Variables (x0_cycle : T) (e : rel T).
Fixpoint path x (p : seq T) :=
if p is y :: p' then e x y && path y p' else true.
Definition cycle p := if p is x :: p' then path x (rcons p' x) else true.

Lemma sub_in_sorted s : all P s -> sorted e s -> sorted e' s.