proposition: Lemma pcv_src_new: forall (g : LGraph) (old new : VType) (n : nat), In n (map snd (get_edges g old)) -> src (pregraph_copy_v g old new) (new, n) = new.
proof: Proof. intros. unfold pregraph_copy_v. rewrite flcvae_src_new; auto. rewrite map_fst_combine. - replace (length (get_edges g old)) with (length (map snd (get_edges g old))) by now rewrite map_length. rewrite combine_repeat_eq_map, map_map. apply list_in_map_inv in H. destruct H as [[v idx] [? ?]]. simpl in H. subst idx. change (new, n) with ((fun x : VType * nat => (new, snd x)) (v, n)). now apply in_map. - unfold EType. now rewrite combine_length, repeat_length, !map_length, Nat.min_id. Qed.
imports: Coq.ZArith.ZArith Coq.Program.Basics compcert.lib.Integers compcert.common.Values VST.veric.base VST.veric.Clight_lemmas VST.veric.val_lemmas VST.veric.shares VST.msl.seplog VST.msl.shares VST.zlist.sublist VST.floyd.coqlib3 VST.floyd.functional_base VST.floyd.data_at_rec_lemmas CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.List_ext CertiGraph.graph.graph_model CertiGraph.graph.graph_gen CertiGraph.graph.path_lemmas CertiGraph.graph.subgraph2 CertiGraph.graph.graph_relation CertiGraph.graph.graph_isomorphism CertiGraph.graph.reachable_ind CertiGraph.CertiGC.GCGraph