proposition: Lemma localDag_step_rev: forall g x S, vvalid g x -> step_list g x S -> ~ reachable_through_set g S x -> Forall (localDag g) S -> localDag g x.
proof: Proof. intros. intros y ?; simpl. rewrite (reachable_ind' g x S y H H0) in H3. destruct H3. + subst y. intros y ? ?. apply H1; exists y; split; auto. rewrite (H0 y). destruct H3 as [? [? ?]]; auto. + destruct H3 as [s [? ?]]. rewrite Forall_forall in H2; specialize (H2 s H3). apply H2; auto. Qed.
imports: Coq.Logic.ProofIrrelevance Coq.Sets.Ensembles Coq.Sets.Finite_sets Coq.Lists.List Coq.Classes.Morphisms CertiGraph.lib.Coqlib CertiGraph.lib.List_ext CertiGraph.lib.EquivDec_ext VST.msl.Coqlib2 CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_computable CertiGraph.graph.reachable_ind CertiGraph.graph.subgraph2