proposition: Lemma InEither_cons_iff: forall v a l, InEither v (a :: l) <-> IsEither v a \/ InEither v l.
proof: Proof. do 3 intro. revert v a. induction l; intros. - destruct a. unfold InEither at 1. simpl. unfold IsEither. simpl. intuition. - rewrite IHl. unfold InEither. simpl. destruct (split l) as [l1 l2]. destruct a. destruct a0. unfold IsEither. simpl. rewrite !in_app_iff. simpl. clear. firstorder. Qed.
imports: Coq.Lists.List Coq.micromega.Lia Coq.Sorting.Permutation Coq.ZArith.ZArith_base Coq.ZArith.Zcomplements Coq.Logic.FunctionalExtensionality CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext VST.zlist.sublist VST.zlist.list_solver