proposition: Lemma remove_ve_src_unchanged: forall g gen e, src (remove_nth_gen_ve g gen) e = src g e.
proof: Proof. intros. unfold remove_nth_gen_ve. remember (map (fun idx : nat => (gen, idx)) (nat_inc_list (number_of_vertices (nth_gen g gen)))). clear Heql. revert g e. induction l; intros; simpl; [reflexivity|]. rewrite IHl. clear. simpl. unfold pregraph_remove_vertex_and_edges. transitivity (src (pregraph_remove_vertex g a) e). 2: reflexivity. remember (pregraph_remove_vertex g a) as g'. remember (get_edges g a) as l. clear a g Heqg' Heql. rename g' into g. revert g e. now induction l; intros; simpl; [|rewrite IHl]. 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