fact: Fixpoint lazylist_backtrack_opt {A} (l : LazyList (option A)) (f : A -> option bool) (anyNone : bool) : option bool := match l with | lnil => if anyNone then None else Some false | lcons mx xs => match mx with | Some x => match f x with | Some true => Some true | Some false => lazylist_backtrack_opt (xs tt) f anyNone | None => lazylist_backtrack_opt (xs tt) f true end | None => lazylist_backtrack_opt (xs tt) f true end end.
imports: ZArith List mathcomp.ssreflect.ssreflect mathcomp(ssrfun ssrbool ssrnat) Numbers.BinNums Classes.RelationClasses ExtLib.Structures(Functor Applicative) QuickChick(Sets Tactics Producer LazyList RandomQC)