proposition: Lemma allPIn (s : seq T) : reflect (forall x, x \In s -> p x) (all p s).
proof: Proof. elim: s=>[|x s IHs] /=; first by constructor. case: andP=>[[H1 H2]|H]; constructor. - by move=>z /In_cons [->|/(IHs H2)]. move=>H1; elim: H; split; first by apply/H1/In_cons; left. by apply/IHs=>z H; apply/H1/In_cons; right. Qed.
imports: Coq(ssreflect ssrbool ssrfun Setoid) mathcomp(ssrnat seq eqtype) pcm(options)