proposition: Lemma compute_reachable: forall x L, reachable_list G x L -> forall y, reachable G x y -> {L' : list V | reachable_list G y L' /\ NoDup L'}.
proof: Proof. intros. assert (vvalid G y) by (apply reachable_foot_valid in H0; auto). apply finite_reachable_computable; auto. apply EnumCovered_strengthen with (reachable G x). + intros ? ?. apply reachable_by_trans with y; auto. + eapply reachable_list_EnumCovered; eauto. Qed.
imports: Coq.Sets.Finite_sets Coq.Arith.Arith Coq.Logic.ProofIrrelevance Coq.Logic.FunctionalExtensionality Coq.Sorting.Permutation Coq.micromega.Lia CertiGraph.lib.Coqlib CertiGraph.lib.List_ext CertiGraph.lib.EquivDec_ext CertiGraph.lib.EnumEnsembles Coq.Lists.List VST.msl.Coqlib2 CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_ind CertiGraph.graph.subgraph2 CertiGraph.graph.graph_gen CertiGraph.graph.MathGraph CertiGraph.graph.FiniteGraph