proposition: Lemma tuto_allP : forall (a : pred T) s, reflect (forall x, x \in s -> a x) (all a s).
proof: Proof. Proof. move=> a; elim=> [|x s IHs]; first by left. rewrite /= andbC; case: IHs => IHs /=. apply: (iffP idP) => [Hx y|]; last by apply; exact: mem_head. by case/predU1P=> [->|Hy]; auto. by right; move=> H; case IHs; move=> y Hy; apply H; exact: mem_behead. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq path) mathcomp(choice fintype tuple finset)