keeping track of tested combinations
semantic checks 2nd boolean operand recursion