proposition: Lemma root_not_reachable_derive: forall (g: Graph) root, forall n, (n <> root /\ forall e, out_edges g root e -> ~ reachable g (dst g e) n) -> ~ reachable g root n.
proof: Proof. intros. destruct H. intro. apply (root_reachable_by_derive _ g root) in H1. destruct H1; auto. destruct H1 as [e [? ?]]. specialize (H0 _ H1). apply H0. revert H2. apply reachable_by_weaken. compute. auto. Qed.
imports: Coq.Classes.Morphisms CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.EnumEnsembles CertiGraph.lib.List_ext CertiGraph.lib.relation_list CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.graph_gen CertiGraph.graph.graph_relation CertiGraph.graph.subgraph2 CertiGraph.graph.reachable_ind Coq.Logic.Classical