fact: Definition shrinkListAux {A : Type} (shr : A -> list A) : list A -> list (list A) := fix shrinkListAux_ (l : list A) : list (list A) := match l with | nil => nil | cons x xs => xs :: map (fun xs' => cons x xs') (shrinkListAux_ xs) ++ map (fun x' => cons x' xs) (shr x ) end.
imports: Coq(Arith Basics List Recdef ZArith Lia) mathcomp(ssrbool ssreflect ssrnat) QuickChick(Classes Sets Producer Enumerators Generators Tactics)