Set Implicit Arguments.
Unset Strict Implicit.
Notation "x 'el' A" := (In x A) (at level 70).
Notation "A <<= B" := (incl A B) (at level 70).
Notation "| A |" := (length A) (at level 65).
Ltac inv H := inversion H; subst; try clear H.
(* *Some basic things concerning lists *)

Lemma in_split X (a : X) (x : list X) :
a el x -> exists y z, x = y ++ [a] ++ z.