proposition: Lemma partition_app {A} : forall f (l1 l2 : list A), List.partition f (l1 ++ l2) = (fst (List.partition f l1) ++ fst (List.partition f l2), snd (List.partition f l1) ++ snd (List.partition f l2)).
proof: Proof. induction l1; simpl. - intros; destruct (List.partition f l2); reflexivity. - intros; rewrite IHl1; destruct (f a); destruct (List.partition f l1); simpl; f_equal. 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