Section contents.
Variable T: Set.
Inductive SkipList: list T -> list T -> Prop :=
| SkipList_head (x: T) l l': SkipList l l' -> SkipList (x :: l) (x :: l')
| SkipList_tail (x: T) l l': SkipList l l' -> SkipList l (x :: l')
| SkipList_nil l: SkipList nil l.
Hint Constructors SkipList.
Proof with auto.
induction l; intros.
inversion_clear H0...
inversion_clear H.
inversion_clear H0...
apply NoDup_cons...
intro.
apply H1.
apply SkipList_incl with l0...
Qed.

Lemma SkipList_trans (y x: list T): SkipList x y -> forall z, SkipList y z -> SkipList x z.