proposition: Lemma guarded_si_strong_trans': forall (PV1 PV2 PV: V -> Prop) (PE1 PE2 PE: E -> Prop) g1 g2 g3, Included PV1 PV -> Included PV2 PV -> Included PE1 PE -> Included PE2 PE -> guarded_structurally_identical (Complement _ PV1) (Complement _ PE1) g1 g2 -> guarded_structurally_identical (Complement _ PV2) (Complement _ PE2) g2 g3 -> guarded_structurally_identical (Complement _ PV ) (Complement _ PE ) g1 g3.
proof: Proof. intros. eapply guarded_si_strong_trans. + apply Complement_Included_rev, H. + apply Complement_Included_rev, H0. + apply Complement_Included_rev, H1. + apply Complement_Included_rev, H2. + 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