proposition: Lemma list_map_bi_map: forall l x, ~ In x (map snd l) -> list_map l x = list_bi_map l x.
proof: Proof. induction l; intros; unfold list_map, list_bi_map; simpl; auto. destruct a as [k v]. simpl in *. apply Decidable.not_or in H. destruct H. destruct (equiv_dec k x); auto. destruct (equiv_dec v x); unfold equiv in *. 1: easy. fold (list_map l x) (list_bi_map l x). now apply IHl. 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