# Binary search (VAR l u) (RULES eval(l, u) -> eval(((l + u) / 2) + 1, u) :|: l >= 0 && u >= 0 && l < u eval(l, u) -> eval(l, (l + u) / 2) :|: l >= 0 && u >= 0 && l < u )