proposition: Lemma In_map_snd_iff: forall {A B} b (l: list (A * B)), In b (map snd l) <-> exists a : A, In (a, b) l.
proof: Proof. intros. induction l; simpl. 1: intuition; now destruct H. destruct a as [a0 b0]. simpl in *. split; intros. - destruct H. 1: subst; exists a0; now left. rewrite IHl in H. destruct H as [a ?]. exists a. now right. - destruct H as [a ?]. destruct H. 1: inversion H; now left. rewrite IHl. right. now exists a. 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