proposition: Lemma NoDupA_filter elt eq_elt : forall (f : elt -> bool) l, NoDupA eq_elt l -> NoDupA eq_elt (List.filter f l).
proof: Proof. induction l; intros; eauto; inversion H; subst. simpl; find_if_inside; eauto. econstructor; eauto. intro; eapply H2. revert H0; clear; induction l; simpl; intros. - inversion H0; subst. - find_if_inside. + inversion H0; subst. * econstructor; eauto. * econstructor 2; eauto. + econstructor 2; eauto. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsInterface Fiat.QueryStructure.Implementation.DataStructures.Bags.BagsProperties Coq.Arith.Peano_dec Coq.Structures.OrdersEx Coq.FSets.FMapInterface Coq.FSets.FMapFacts Coq.FSets.FMapAVL Coq.ZArith.ZArith Fiat.Common Fiat.Common.String_as_OT Fiat.Common.List.ListFacts Fiat.Common.List.FlattenList Fiat.Common.SetEqProperties Fiat.Common.FMapExtensions Fiat.Common.List.PermutationFacts Fiat.QueryStructure.Specification.SearchTerms.ListInclusion