proposition: Lemma Forall_inv_iff {A} P x (xs : list A) : List.Forall P (x::xs) <-> (P x /\ List.Forall P xs).
proof: Proof. split; intro H. { inversion H; subst; split; assumption. } { constructor; apply H. } Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Coq.Lists.List Coq.Lists.SetoidList Coq.Bool.Bool Fiat.Common Fiat.Common.List.Operations Fiat.Common.Equality Fiat.Common.List.FlattenList Fiat.Common.LogicFacts