proposition: Lemma eformat_evalid_vvalid: forall (g: UAdjMatGG) u v, evalid g (eformat (u,v)) -> vvalid g u /\ vvalid g v.
proof: Proof. intros. apply (evalid_strong_evalid g) in H. destruct (Z.lt_trichotomy u v). rewrite eformat1 in H. destruct H. rewrite (edge_src_fst g), (edge_dst_snd g) in H1; auto. simpl; lia. destruct H0. subst u. rewrite eformat1 in H. destruct H. rewrite (edge_src_fst g), (edge_dst_snd g) in H0; auto. simpl; lia. rewrite eformat2 in H. simpl in H; destruct H. rewrite (edge_src_fst g), (edge_dst_snd g) in H1; auto. simpl in H1. split; apply H1. simpl; lia. Qed.
imports: VST.floyd.proofauto CertiGraph.lib.EquivDec_ext CertiGraph.lib.List_ext CertiGraph.lib.find_lemmas CertiGraph.graph.graph_model CertiGraph.graph.graph_gen CertiGraph.graph.graph_relation CertiGraph.graph.undirected_graph CertiGraph.graph.MathAdjMatGraph