proposition: Lemma si_local_dag: forall (g1 g2: Graph) x, g1 ~=~ g2 -> (localDag g1 x <-> localDag g2 x).
proof: Proof. cut (forall (g1 g2: Graph) x, g1 ~=~ g2 -> localDag g1 x -> localDag g2 x). 1: intros; split; apply H; [| symmetry]; auto. intros. hnf; intros. rewrite <- H in H1. specialize (H0 _ H1); clear H1. hnf; intros. pose proof edge_si _ _ y y0 H. rewrite <- H3 in H1. rewrite <- H in H2. specialize (H0 _ H1 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