proposition: Lemma process_eval_rec5_draw_win_win ht (res : estate) l : Hiv l -> ht_valid ht -> res = win -> \smin_(i <- l) f1 i = win -> process_eval_rec5 f2 edraw ewin ht res l = eloss :> estate.
proof: Proof. elim: l ht res => [|i l IH] ht res HHiv Hv; first by rewrite big_nil => ->. rewrite big_cons [process_eval_rec5 _ _ _ _ _ _]/= => H1 H2. case E : f2 => [ht1 res1]. have -> : res1 = f2 edraw ewin ht i by rewrite E. have -> : ht1 = f2 edraw ewin ht i by rewrite E. have HHiv1 := Hiv_cons HHiv. have [H3 H4] : f1 i = win /\ \smin_(j <- l) f1 j = win. have [E1|/ltnW E1] := leqP (f1 i) (\smin_(j <- l) f1 j). rewrite smin_lel // in H2; split => //. by apply: ge_winE; rewrite -{1}H2. rewrite smin_ler // in H2; split => //. by apply: ge_winE; rewrite -{1}H2. rewrite (H5draw_win_win HHiv) // H1 /=. by apply: IH => //; apply: (H5draw_win_table HHiv). Qed.
imports: HB(structures) mathcomp(all_ssreflect) mathcomp(all_algebra)