proposition: Lemma DoubleNoDup_fst: forall l, DoubleNoDup l -> NoDup (map fst l).
proof: Proof. intros. red in H. destruct (split l) eqn:? . rewrite map_fst_split, Heqp. simpl. now apply NoDup_app_l in H. 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