proposition: Lemma in_path_eq_epath_to_vpath: forall g p x, valid_path g p -> (In x (epath_to_vpath g p) <-> In_path g x p).
proof: Proof. intros. destruct p as [v p]. revert v H. induction p; intros. + simpl. unfold In_path. simpl. intuition. destruct H1 as [e [? _]]; exfalso; auto. + pose proof (valid_path_cons _ _ _ _ H). destruct H as [? _]. specialize (IHp _ H0). rewrite epath_to_vpath_cons_eq; auto. rewrite in_path_or_cons; auto. rewrite <- IHp. simpl. intuition. Qed.
imports: Coq.Logic.ProofIrrelevance Coq.micromega.Lia CertiGraph.lib.Coqlib CertiGraph.lib.EnumEnsembles CertiGraph.lib.List_ext CertiGraph.lib.EquivDec_ext CertiGraph.graph.graph_model Coq.Lists.List Coq.Lists.ListDec