fact: Fixpoint lengthSplit {A : Type} (l l' : list A) : option (list A * list A) := match l, l' with | [], x => Some ([], x) | _::xs, y::ys => option_map (fun (p : list A * list A) => let (l1,l2) := p in (y::l1, l2)) (lengthSplit xs ys) | _, _ => None end.
imports: PArith List ChoiceFacts Lia mathcomp.ssreflect.ssreflect mathcomp(ssrfun ssrbool) Classes RandomQC Generators Sets