proposition: Lemma add_edge_fits_upath_rev: forall (g: PGraph) e s d p l, fits_upath (pregraph_add_edge g e s d) l p -> ~ In e l -> fits_upath g l p.
proof: Proof. induction p; intros. destruct l; auto. destruct p. destruct l; auto. destruct l. auto. assert (Heq_e: e <> e0). unfold not; intros. apply H0. left; rewrite H1; auto. assert (HIn_e: ~ In e l). unfold not; intros. apply H0. right; auto. clear H0. destruct H. split. destruct H. destruct H. split. split. apply add_edge_evalid_rev in H; auto. rewrite add_edge_preserves_src, add_edge_preserves_dst in H2; auto. simpl in H2; auto. rewrite add_edge_preserves_src, add_edge_preserves_dst in H1; auto. apply IHp; 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