Section SubMemLaws.
Variable T : Type.

(* Specifications: *)
Lemma subp_refl (p : Pred T) : p <=p p.
Lemma subp_and (p1 p2 q : Pred T) : q <=p p1 /\ q <=p p2 <-> q <=p p1 *p p2.
Lemma subp_orl (p1 p2 q : Pred T) : p1 <=p p2 -> p1 +p q <=p p2 +p q.
Lemma In_split x s : x \In s -> exists s1 s2, s = s1 ++ x :: s2.
End ListMembership.
Lemma Mem_map T T' (f : T -> T') x (s : seq T) :
x \In s -> f x \In (map f s).
Lemma Mem_map_inv T T' (f : T -> T') x (s : seq T) :
x \In (map f s) -> exists y, x = f y /\ y \In s.