proposition: Lemma graph_vertex_lgd_ramif: forall g v e v' n, 0 <= n < Zlength (make_fields g v) -> Znth n (make_fields g v) = inr e -> graph_has_v g v -> graph_rep g |-- vertex_rep (nth_sh g (vgeneration v)) g v * (vertex_rep (nth_sh g (vgeneration v)) (labeledgraph_gen_dst g e v') v -* graph_rep (labeledgraph_gen_dst g e v')).
proof: Proof. intros. destruct H1. sep_apply (graph_gen_lgd_ramif g v v' e n); try assumption. destruct v as [gen index] eqn:?. simpl vgeneration in *. simpl vindex in *. rewrite <- Heqv0 in H, H0. sep_apply (gen_vertex_lgd_ramif g gen index v' v n e); try assumption. cancel. apply wand_frame_ver. Qed.
imports: VST.veric.compcert_rmaps VST.msl.shares VST.msl.wand_frame VST.concurrency.conclib CertiGraph.lib.List_ext CertiGraph.msl_ext.log_normalize CertiGraph.msl_ext.ramification_lemmas CertiGraph.graph.graph_model CertiGraph.CertiGC.GCGraph CertiGraph.CertiGC.env_graph_gc CertiGraph.msl_ext.iter_sepcon Coq.Lists.List