Inductive Embeds : list A -> list A -> Prop :=
| emb0 : Embeds nil nil
| emb1 : forall v w a, Embeds v w -> Embeds v (a::w)
| emb2 : forall v w a b, Embeds v w -> leA a b -> Embeds (a::v) (b::w).Inductive Embeds : list A -> list A -> Prop :=
| emb0 : Embeds nil nil
| emb1 : forall v w a, Embeds v w -> Embeds v (a::w)
| emb2 : forall v w a b, Embeds v w -> leA a b -> Embeds (a::v) (b::w).Inductive Embeds : list A -> list A -> Prop :=
| emb0 : Embeds nil nil
| emb1 : forall v w a, Embeds v w -> Embeds v (a::w)
| emb2 : forall v w a b, Embeds v w -> leA a b -> Embeds (a::v) (b::w).Inductive Embeds : list A -> list A -> Prop :=
| emb0 : Embeds nil nil
| emb1 : forall v w a, Embeds v w -> Embeds v (a::w)
| emb2 : forall v w a b, Embeds v w -> leA a b -> Embeds (a::v) (b::w).Inductive sorted : list A -> Prop :=
|srt0 : sorted nil
|srt1 : forall a, sorted (a::nil)
|srt2 : forall a a' l, leA a' a -> sorted (a'::l) -> sorted (a::(a'::l)).Inductive sorted : list A -> Prop :=
|srt0 : sorted nil
|srt1 : forall a, sorted (a::nil)
|srt2 : forall a a' l, leA a' a -> sorted (a'::l) -> sorted (a::(a'::l)).Inductive sorted : list A -> Prop :=
|srt0 : sorted nil
|srt1 : forall a, sorted (a::nil)
|srt2 : forall a a' l, leA a' a -> sorted (a'::l) -> sorted (a::(a'::l)).Inductive sorted : list A -> Prop :=
|srt0 : sorted nil
|srt1 : forall a, sorted (a::nil)
|srt2 : forall a a' l, leA a' a -> sorted (a'::l) -> sorted (a::(a'::l)).Definition embeds : list A -> list A -> Prop := Embeds leA.Definition sublist : list (list A) -> list (list A) -> Prop := Embeds (eq (A:= list A)).

Lemma bad_cons : forall a l, bad embeds (a::l) -> bad embeds l.