The procedure lamdaLoop() is called by two
arguments, n and d, restricting the l -search to at most
l-order
n, and restricting the search depth to at most d plies.
lamdaLoop() must be called with d being an uneven number,
and lamdaLoop() always assumes that the attacker moves first. If
lambdaLoop() returns value 1, the attacker's goal can be
obtained; if it returns value 0, it cannot be obtained at l-order n and
depth d. The variable id controls whether the l-trees are searched
with standard depth-first alpha-beta (id=0), or iterated
deepening (id=1).

In the procedure lambda(), the variable moveColor
attains value 1 if the attacker is to move, and 1 if the
defender is to move. Otherwise, lambda() is just standard
alpha-beta, except for the lines 22-25, 30-42 (pruning off non-ln-moves),
and 51-58. Evaluation() is a procedure that evaluates the
position, the evaluation being = 1·moveColor if the
attacker's goal is obtained, and 0·moveColor otherwise.

The above code could be supplemented with the
possibility of returning value 0.5 instead of only 1 or 0. Hence,
0.5 wold signify that the goal cannot be acheived at the
current search depth, whereas 0 would signify that it has
been disproved that the goal can be acheived (at any search
depth). In the latter case, itereated deepening could also stop
searching deeper.