Implicit Types A B : list X.Definition inclp (X : Type) (A : list X) (p : X -> Prop) : Prop :=
  forall x, x el A -> p x.(** *** Setoid rewriting with list inclusion and list equivalence *)

Instance incl_preorder X : 
  PreOrder (@incl X).Instance equi_Equivalence X : 
  Equivalence (@equi X).

(* Specifications: *)
Lemma in_concat_iff A l (a:A) : a el concat l <-> exists l', a el l' /\ l' el l.