proposition: Lemma partial_partialgraph: forall p1 p2 (g: Graph), (predicate_partialgraph (predicate_partialgraph g p1) p2) ~=~ (predicate_partialgraph g (Intersection _ p1 p2)).
proof: Proof. intros. split; [| split; [| split]]; simpl; intros. + unfold predicate_vvalid; simpl; unfold predicate_vvalid. rewrite Intersection_spec. tauto. + unfold predicate_weak_evalid; simpl. unfold predicate_weak_evalid. rewrite Intersection_spec. tauto. + reflexivity. + reflexivity. 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