proposition: Lemma edge_spanning_tree_invalid_s: forall (g: Graph) e (P: NodePred V), evalid g e -> ~ vvalid g (dst g e) -> edge_spanning_tree g e P g.
proof: Proof. intros. hnf. destruct (node_pred_dec P (dst g e)); [left | right]; split; auto. + remember (dst g e) as v. split; [|split; [|split]]. - reflexivity. - repeat intro. apply reachable_head_valid in H2. destruct H2. exfalso; auto. - intros. apply reachable_by_head_valid in H1. exfalso; auto. - intros. apply reachable_by_head_valid in H1. exfalso; auto. + split; [|split; [|split; [|split]]]; intros; [tauto | tauto | tauto |tauto |]. right; 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