proposition: Lemma guarded_si_strong_trans: forall (PV1 PV2 PV: V -> Prop) (PE1 PE2 PE: E -> Prop) g1 g2 g3, Included PV PV1 -> Included PV PV2 -> Included PE PE1 -> Included PE PE2 -> guarded_structurally_identical PV1 PE1 g1 g2 -> guarded_structurally_identical PV2 PE2 g2 g3 -> guarded_structurally_identical PV PE g1 g3.
proof: Proof. intros. transitivity g2. + eapply guarded_si_weaken; [| | eauto]; eauto. + eapply guarded_si_weaken; [| | eauto]; eauto. 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