proposition: Lemma vertices_at_ramif_1: forall (g g': Graph) (P P': V -> Prop) x x' d d', (exists F, Prop_join (eq x) F P /\ Prop_join (eq x') F P' /\ vertices_identical F g g') -> vgamma g x = d -> vgamma g' x' = d' -> vertices_at P g |-- vertex_at x d * (vertex_at x' d' -* vertices_at P' g').
proof: Proof. intros. subst. change (@vertex_at _ _ _ _ _ SGP x (vgamma g x)) with (graph_vcell g x). change (@vertex_at _ _ _ _ _ SGP x' (vgamma g' x')) with (graph_vcell g' x'). apply pred_sepcon_ramif_1. destruct H as [F [? [? ?]]]. exists F; split; [| split]; auto. intros. unfold graph_vcell; f_equal. rewrite vertices_identical_spec in H1. apply H1; auto. Qed.
imports: Coq.Logic.Classical VST.msl.seplog VST.msl.log_normalize VST.msl.ramification_lemmas CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.EnumEnsembles CertiGraph.lib.List_ext CertiGraph.lib.Relation_ext CertiGraph.lib.Equivalence_ext CertiGraph.lib.Morphisms_ext CertiGraph.msl_ext.log_normalize CertiGraph.msl_ext.iter_sepcon CertiGraph.msl_ext.ramification_lemmas CertiGraph.msl_ext.abs_addr CertiGraph.msl_ext.seplog CertiGraph.graph.graph_model CertiGraph.graph.graph_gen CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_computable CertiGraph.graph.reachable_ind CertiGraph.graph.subgraph2 CertiGraph.graph.dag CertiGraph.graph.FiniteGraph