proposition: Lemma NoDup_select {A: Type} {P: A -> Prop} (dec_p: forall x, Decidable (P x)): forall l, NoDup l -> NoDup (select dec_p l).
proof: Proof. intro. induction l; intros; simpl; auto. specialize (IHl (NoDup_cons_1 _ _ _ H)). apply NoDup_cons_2 in H. destruct (dec_p a); auto. constructor; auto. intro. apply H. rewrite select_In in H0. intuition. Qed.
imports: Coq.Lists.List Coq.micromega.Lia Coq.Sorting.Permutation Coq.ZArith.ZArith_base Coq.ZArith.Zcomplements Coq.Logic.FunctionalExtensionality CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext VST.zlist.sublist VST.zlist.list_solver