proposition: Lemma graph_left_local_facts: forall sh x (g: Graph) d l r, vvalid g x -> vgamma g x = (d, l, r) -> graph sh x g |-- valid_pointer (pointer_val_val l).
proof: Proof. intros. eapply derives_trans; [apply (@graph_ramify_aux1_left pSGG_VST (sSGG_VST sh) g x d l r); auto | ]. assert (weak_valid g l) by (apply (gamma_left_weak_valid g x d l r); auto). destruct H1. - simpl in H1. subst l. simpl pointer_val_val. apply sepcon_valid_pointer1. unfold pred. simpl reachable_vertices_at. entailer!. - apply sepcon_valid_pointer1. apply graph_local_facts; auto. Qed.
imports: CertiGraph.dispose.env_dispose_bin CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.subgraph2 CertiGraph.graph.spanning_tree CertiGraph.graph.reachable_computable CertiGraph.msl_application.Graph CertiGraph.msl_application.GraphBin CertiGraph.msl_application.GraphBin_Mark CertiGraph.data_structure.spatial_graph_dispose_bin CertiGraph.data_structure.spatial_graph_unaligned_bin_VST CertiGraph.floyd_ext.share VST.msl.wand_frame VST.floyd.reassoc_seq VST.floyd.field_at_wand