Fixpoint orl (l : list Prop) : Prop :=
  match l with
  | nil => False
  | P :: l' => P \/ orl l'
  end.

(* Specifications: *)
Lemma andl_concat l: andl (concat l) <-> forall l', In l' l -> andl l'.
Lemma orl_map (A : Type) (P : A -> Prop) l : orl (map P l) <-> exists x, In x l /\ P x.