(** alllist and exlist behave nicely *)

(* Specifications: *)
Theorem alllist_ok :
forall (A : Set) (P : A -> Prop) (qlist : list A),
alllist A P qlist <-> (forall q : A, inlist A q qlist -> P q).
Theorem exlist_ok :
forall (A : Set) (P : A -> Prop) (qlist : list A),
exlist A P qlist <-> (exists q : A, inlist A q qlist /\ P q).