proposition: Lemma simple_upath_list_edges_NoDup: forall g p l, simple_upath g p -> fits_upath g l p -> NoDup l.
proof: Proof. induction p; intros. destruct l. apply NoDup_nil. simpl in H0; contradiction. destruct p; destruct l. apply NoDup_nil. simpl in H0; contradiction. simpl in H0; contradiction. destruct H0. apply NoDup_cons. unfold not; intros. destruct H0. apply (fits_upath_vertex_in_path g (v::p) e) in H2. destruct H3; destruct H3; subst a; subst v; destruct H; apply NoDup_cons_2 in H3; destruct H2; contradiction. auto. apply IHp. split. apply H. destruct H. apply NoDup_cons_1 in H2. auto. auto. Qed.
imports: Coq.Logic.Classical CertiGraph.lib.List_ext CertiGraph.lib.EquivDec_ext CertiGraph.graph.graph_model CertiGraph.graph.graph_relation CertiGraph.graph.path_lemmas CertiGraph.graph.graph_gen CertiGraph.graph.FiniteGraph