proposition: Lemma in_new_working_list: forall l1 l2 l3 x, In x (new_working_list l1 l2 l3) <-> In x (l1 ++ l2) /\ ~ In x l3 /\ ~ is_null x.
proof: Proof. intros. unfold new_working_list; rewrite filter_In. assert (false = true <-> False) by (split; [congruence | tauto]). destruct (weak_In_dec l3 x); tauto. Qed.
imports: Coq.Sets.Finite_sets Coq.Arith.Arith Coq.Logic.ProofIrrelevance Coq.Logic.FunctionalExtensionality Coq.Sorting.Permutation Coq.micromega.Lia CertiGraph.lib.Coqlib CertiGraph.lib.List_ext CertiGraph.lib.EquivDec_ext CertiGraph.lib.EnumEnsembles Coq.Lists.List VST.msl.Coqlib2 CertiGraph.graph.graph_model CertiGraph.graph.path_lemmas CertiGraph.graph.reachable_ind CertiGraph.graph.subgraph2 CertiGraph.graph.graph_gen CertiGraph.graph.MathGraph CertiGraph.graph.FiniteGraph