fact: Definition make_tree (n : nat) (m : nat) (v : Z) (acc : Z) := Eval cbv [iter_plus_acc pred] in @nat_rect (fun _ => Z * Z -> Z) (fun '(v, acc) => iter_plus_acc m (acc + acc) v) (fun _ rec '(v, acc) => iter_plus_acc m (rec (v, acc) + rec (v, acc)) v) n (v, acc).
imports: Coq.micromega.Lia Coq.ZArith.ZArith Coq.QArith.QArith Coq.Classes.Morphisms Coq.Setoids.Setoid Coq.Lists.List PerformanceExperiments.Harness