proposition: Lemma filter_map : forall {A B} f g seq, List.filter f (@List.map A B g seq) = List.map g (List.filter (fun x => f (g x)) seq).
proof: Proof. induction seq; simpl; intros. - reflexivity. - destruct (f (g a)); simpl; [ f_equal | ]; assumption. 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