proposition: Lemma cons_tail_dec {A}: forall (l: list A), (l = nil) + {l0: list A & {a: A | l = l0 +:: a}}.
proof: Proof. intros. destruct l. 1: left; auto. right. revert a; induction l; intros. + exists nil, a; auto. + destruct (IHl a) as [? [? ?]]. exists (a0 :: x), x0. rewrite e. simpl; auto. 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