Section plistFun.
Polymorphic Fixpoint split {A B : Type} (lst : plist (pprod A B)) :=
match lst with
| pnil => (pnil, pnil)
| pcons (ppair x y) tl => let (left, right) := split tl in (pcons x left, pcons y right)
end.

Lemma pIn_app_iff (A : Type) (l l' : plist A) (a : A) :
pIn a (app l l') <-> pIn a l \/ pIn a l'.