Fixpoint allb (ls : list T) : bool :=
    match ls with
      | nil => true
      | l :: ls =>
        if p l then allb ls else false
    end.Fixpoint anyb (ls : list T) : bool :=
    match ls with
      | nil => false
      | l :: ls =>
        if p l then true else anyb ls
    end.

Lemma Forall_map : forall T U (f : T -> U) P ls, Forall P (List.map f ls) <-> Forall (fun x => P (f x)) ls.