fact: Fixpoint group_by' {T} (eqb : T -> T -> bool) (ls : list T) (acc : list T) {struct ls} : list (list T) := match ls, acc with | [], [] => [] | [], acc => [List.rev acc] | x::xs, [] => group_by' eqb xs [x] | x::xs, y::_ => if eqb x y then group_by' eqb xs (x::acc) else acc :: group_by' eqb xs [x] end.
imports: Coq.Strings.String Coq.Structures.Orders Coq.micromega.Lia Coq.Bool.Bool Coq.Sorting.Mergesort Coq.QArith.QArith Coq.QArith.Qround Coq.QArith.Qabs Coq.QArith.Qminmax Coq.NArith.NArith Coq.ZArith.ZArith Coq.Arith.Arith Coq.Lists.List PerformanceExperiments.LetIn