proposition: Lemma precise_graph: forall (g: Graph) {rfg: ReachableFiniteGraph g} x, Decidable (vvalid g x) -> precise (reachable_vertices_at x g).
proof: Proof. intros. unfold reachable_vertices_at. unfold vertices_at. rewrite pred_sepcon_eq. apply (precise_exp_iter_sepcon). + apply sepcon_unique_graph_cell. + destruct (construct_reachable_list g x H) as [l [? ?]]. left; exists l. intuition. + apply precise_graph_cell. + intros. apply NoDup_Permutation; auto. destruct H0, H1. split; intros; specialize (H0 x0); specialize (H1 x0); intuition. Qed.
imports: Coq.Logic.Classical VST.msl.seplog VST.msl.log_normalize VST.msl.ramification_lemmas CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.EnumEnsembles CertiGraph.lib.List_ext CertiGraph.lib.Relation_ext CertiGraph.lib.Equivalence_ext CertiGraph.lib.Morphisms_ext CertiGraph.msl_ext.log_normalize CertiGraph.msl_ext.iter_sepcon CertiGraph.msl_ext.ramification_lemmas CertiGraph.msl_ext.abs_addr CertiGraph.msl_ext.seplog CertiGraph.graph.graph_model CertiGraph.graph.graph_gen CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_computable CertiGraph.graph.reachable_ind CertiGraph.graph.subgraph2 CertiGraph.graph.dag CertiGraph.graph.FiniteGraph