fact: Fixpoint process_eval_rec4 (eval : estate -> estate -> board -> estate) alpha beta res l : estate := if l is i :: l1 then let res1 := eval alpha beta i in if res <= res1 then process_eval_rec4 eval alpha beta res l1 else if beta <= res1 then process_eval_rec4 eval alpha beta res1 l1 else if res1 <= alpha then (if res1 is edraw then if l1 is _ :: _ then drawwin else esflip res1 else esflip res1) else process_eval_rec4 eval alpha res1 res1 l1 else esflip res.
imports: HB(structures) mathcomp(all_ssreflect) mathcomp(all_algebra)