proposition: Lemma fold_left_accum_Zadd: forall (l: list Z) (x y: Z), fold_left Z.add l (x+y) = (fold_left Z.add l x) + y.
proof: Proof. induction l; intros. simpl; auto. simpl. replace (x + y + a) with ((x+a) + y) by lia. apply (IHl (x+a) y). 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