proposition: Lemma gremove_edge_is_partial_graph: forall (g1 : Graph) (e : E) (g2 : Graph), evalid g1 e -> gremove_edge g1 e g2 -> is_partial_graph g2 g1.
proof: Proof. intros. destruct H0 as [? [? [? [? ?]]]]. split; [|split; [|split]]; intros. + rewrite H0; auto. + destruct_eq_dec e0 e. - subst. auto. - specialize (H1 _ H6). intuition. + destruct_eq_dec e0 e. - subst. destruct H4. * exfalso; auto. * intuition. - specialize (H1 _ H7). assert (evalid g1 e0) by intuition. symmetry. apply H2; auto. + destruct_eq_dec e0 e. - subst. exfalso. destruct H4 as [? | [? _]]; auto. - specialize (H1 _ H7). assert (evalid g1 e0) by intuition. symmetry. apply H3; 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