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.
Hypothesis leT_tr : {in P & &, transitive leT}.

Lemma path_sorted_inE x s :
all P (x :: s) -> path leT x s = all (leT x) s && sorted leT s.