proposition: Lemma guarded_morphism_proper_aux2: forall PV PE vmap1 vmap2 emap1 emap2 (G: PreGraph V E) (G': PreGraph V' E'), guarded_pointwise_relation PV eq vmap1 vmap2 -> guarded_pointwise_relation PE eq emap1 emap2 -> guarded_morphism PV PE vmap1 emap1 G G' -> guarded_morphism PV PE vmap2 emap2 G G'.
proof: Proof. intros. rewrite guarded_pointwise_relation_spec in H. rewrite guarded_pointwise_relation_spec in H0. split; intros. + intros. rewrite <- H by auto. apply (vvalid_preserved H1); auto. + intros. rewrite <- H0 by auto. apply (evalid_preserved H1); auto. + rewrite <- H0 by auto. rewrite <- H by auto. apply (src_preserved H1); auto. + rewrite <- H0 by auto. rewrite <- H by auto. apply (dst_preserved H1); auto. Qed.
imports: CertiGraph.lib.Coqlib CertiGraph.lib.Ensembles_ext CertiGraph.lib.EquivDec_ext CertiGraph.lib.relation_list CertiGraph.lib.Morphisms_ext CertiGraph.lib.List_ext CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_ind CertiGraph.graph.subgraph2 CertiGraph.graph.graph_gen CertiGraph.graph.graph_relation