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

Lemma andl_map (A : Type) (f g : A -> Prop) l : andl (map f l) -> (forall a, In a l -> f a -> g a) -> andl (map g l).