Call max (A1,g,-inf, +inf) Call min(B1,g,-inf,+inf) Call Max(a2,g,-inf,+inf) Call min(L1,g,-inf,+inf) return +1 from min(L1,g,-inf,+inf) return +1 from Max(a2,g,-inf,+inf) {local version of b=+1 inside the call min(B1,g,-inf,+inf)) Call Max(a3,g,-inf,+1) Call min(l2,game,-inf,+1) return +2 {local to max(A3...) alpha is set to the max(-inf,+2) so alpha=+2 Therefore, the test of alpha>=beta returns +1 return +1 from Call Max(a3,g,-inf,+1) return +1 from Call min(B1,g,-inf,+inf) call min(b2,g,+1,+inf) call max (a4,g,+1,+inf) call min (l4,g,+1,+inf) return -1 from call min (l4,g,+1,+inf) return -1 from call max (a4,g,+1,+inf) (We are now inside of the call min(b2,g,...) Max(A4,...) returned -1 so beta=min(+1,-1) so the new beta is -1 So "if b<=a" will be true, so we return +1 without doing any more successors(i.e A5)} return of +1 from call min(b2,g,+1,+inf) return +1 from max(A1,g,-inf, +inf)