# check if a binary tree is a binary search tree

I have some doubts about this algorithm which checks if a binary tree is a binary search tree:

``isAbr(x)     {             if(x == NULL)                     return <true, -∞, +∞>;             if(x.left == NULL && x.right == NULL)                     return <true, x.key, x.key>;              <abrLeft, minLeft, maxLeft> = isAbr(x.left);             <abrRight, minRight, maxRight> = isAbr(x.left);             abr = abrLeft && abrRigh && (x.key > maxLeft) && (x.key < minLeft);             min = MIN(minLeft, minRight, x.k);             max = max(maxLeft, maxRight, x.k);              return <abr, min, max>     } ``

in particular, it is not clear to me what happens when a node has only one child:

for example, here, the node with the value 6 returns $$$$, and the NULL node to the right of the root returns $$$$; but with the instruction `abr = abrLeft && abrRigh && (x.key > maxLeft) && (x.key < minLeft); `don’t we get FALSE $$(8 < -∞)$$?