proposition: Lemma pregraph_join_iff: forall PV PE G1 G2, pregraph_join PV PE G1 G2 <-> (Prop_join (vvalid G1) PV (vvalid G2) /\ Prop_join (evalid G1) PE (evalid G2) /\ guarded_structurally_identical (vvalid G1) (evalid G1) G1 G2).
proof: Proof. intros. unfold pregraph_join, Prop_join. rewrite guarded_si_spec. split; intros; repeat split; try tauto; auto; firstorder. 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 CertiGraph.graph.graph_gen