proposition: Lemma spanning_tree_root_vvalid: forall (g1 : Graph) (root : V) (P: V -> Prop) (g2 : Graph), spanning_tree g1 root P g2 -> P root -> vvalid g1 root -> vvalid g2 root.
proof: Proof. intros. destruct H as [_ [_ [? _]]]. assert (g1 |= root ~o~> root satisfying P) by (apply reachable_by_refl; auto). specialize (H _ H2). apply reachable_head_valid in H. auto. Qed.
imports: Coq.Classes.Morphisms CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext CertiGraph.lib.EnumEnsembles CertiGraph.lib.List_ext CertiGraph.lib.relation_list CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.graph_gen CertiGraph.graph.graph_relation CertiGraph.graph.subgraph2 CertiGraph.graph.reachable_ind Coq.Logic.Classical