proposition: Lemma gpredicate_sub_labeledgraph_equiv: forall (g: Graph) (PV1 PV2: V -> Prop) (PE1 PE2: E -> Prop), Same_set (Intersection _ (vvalid g) PV1) (Intersection _ (vvalid g) PV2) -> Same_set (Intersection _ (evalid g) PE1) (Intersection _ (evalid g) PE2) -> (gpredicate_sub_labeledgraph PV1 PE1 g) ~=~ (gpredicate_sub_labeledgraph PV2 PE2 g)%LabeledGraph.
proof: Proof. intros. split; [| split]. + apply gpredicate_subgraph_equiv; auto. + simpl; intros; auto. + simpl; intros; auto. Qed.
imports: Coq.Logic.ProofIrrelevance Coq.Sets.Ensembles Coq.Sets.Finite_sets Coq.Classes.Morphisms CertiGraph.lib.Coqlib CertiGraph.lib.Ensembles_ext CertiGraph.lib.relation_list CertiGraph.lib.List_ext CertiGraph.lib.Equivalence_ext CertiGraph.lib.EquivDec_ext VST.msl.Coqlib2 Coq.Lists.List CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_ind