proposition: Lemma In_fold_left : forall a bs l, In a (fold_left f bs l) <-> (In a l \/ exists b, In b bs /\ In a (g b)).
proof: Proof. intros. rewrite fold_left_flat_map, in_app, in_flat_map. intuition. destruct H0. right. exists x. rewrite In_rev. hyp. destruct H0. left. exists x. rewrite <- In_rev. hyp. Qed.
imports: CoLoR(LogicUtil EqUtil RelUtil BoolUtil NatUtil) Coq(Setoid SetoidList FunInd)