fact: Definition remove_smaller_args_of_size_by_reflect {T} {T_beq : T -> T -> bool} {T_reflect : reflect_rel (@eq T) T_beq} (sz : size) (args_of_size : size -> list T) : list T := let args := uniquify T_beq (args_of_size sz) in let smaller_args := flat_map args_of_size (smaller_sizes sz) in filter (fun v => negb (existsb (T_beq v) smaller_args)) args.
imports: Coq.QArith.QArith Coq.Structures.Orders Coq.micromega.Lia Coq.Bool.Bool Coq.Sorting.Mergesort Coq.Lists.List Coq.ZArith.ZArith PerformanceExperiments.Sandbox