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

Lemma andl_app l1 l2 : andl (l1 ++ l2) <-> andl l1 /\ andl l2.
Fixpoint orl (l : list Prop) : Prop :=
match l with
| nil => False
| P :: l' => P \/ orl l'
end.