fact: Fixpoint sublists {A} (xs : list A) : list (list A) := match xs with | nil => [[]] | x :: xs => let xss := sublists xs in xss ++ (map (fun l => x :: l)) xss end.
imports: Lists.List ZArith Setoid Coq.Classes.Morphisms Lia