proposition: Lemma right_weak_valid: forall (G G1 G2 G3: Graph) (G1' G2' G3': LGraph) (x l r: addr), vgamma G x = (null, l, r) -> vvalid G x -> vcopy1 x G G1 G1' -> extended_copy l (G1: LGraph, G1') (G2: LGraph, G2') -> ecopy1 (x, L) (G2: LGraph, G2') (G3: LGraph, G3') -> @weak_valid _ _ _ _ G3 _ (maGraph _) r.
proof: Proof. intros. destruct H1 as [? _], H2 as [? _], H3 as [? _]. rewrite <- H2, <- H1 in H3. eapply weak_valid_si; [symmetry; eauto |]. eapply gamma_right_weak_valid; eauto. Qed.
imports: CertiGraph.lib.Ensembles_ext Coq.Lists.List VST.msl.seplog VST.msl.log_normalize VST.msl.ramification_lemmas VST.msl.Coqlib2 CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.relation_list CertiGraph.lib.Morphisms_ext CertiGraph.msl_ext.log_normalize CertiGraph.msl_ext.iter_sepcon CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_computable CertiGraph.graph.reachable_ind CertiGraph.graph.graph_gen CertiGraph.graph.graph_relation CertiGraph.graph.subgraph2 CertiGraph.graph.dag CertiGraph.graph.weak_mark_lemmas CertiGraph.graph.graph_morphism CertiGraph.graph.local_graph_copy CertiGraph.msl_application.Graph CertiGraph.msl_application.GraphBin CertiGraph.msl_application.Graph_Copy Coq.Logic.Classical