proposition: Lemma vvalid_get_ufroot: forall x, vvalid g x -> exists x_rt, uf_root g x x_rt.
proof: Proof. intros. assert (EnumCovered Edge (evalid g)). { apply EnumEnsembles.Enumerable_is_EnumCovered, finiteE. } pose proof (uf_root_always_exists x X H). destruct H0 as [x_rt ?]. exists x_rt; trivial. Qed.
imports: CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.List_ext CertiGraph.lib.Ensembles_ext CertiGraph.lib.EnumEnsembles CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.graph_gen CertiGraph.graph.MathGraph CertiGraph.graph.LstGraph CertiGraph.graph.FiniteGraph CertiGraph.graph.reachable_computable