T or ? > T or T = T; T or F = T Logo >>>> T
F or ? > F or T = T; F or F = F Logo >>>> ?
T and ? > T and T = T; T and F = F Logo >>>> ?
F and ? > F and T = F; F and F = F Logo >>>> F
not ? > not T = F; not F = T Logo >>>> ?
Onde se tem ? significa que o resultado pode ser ambos (F ou V). Notem que para cada expressao eu substitui o ? por T e F, dai é só aplicar soma lógica.
Questão legal para fixar o entendimento a respeito de operações lógicas com valores nulos. Para todos os efeitos, como ? indica um desconhecido, você pode entender que:
T = Verdadeiro (true)
F = Falso (false)
? = NULL
Assim, temos as seguintes expressões:
T or ? = A operação OR retorna verdadeiro se qualquer um dos dois itens envolvidos for verdadeiro. Como o primeiro o é, nem precisamos saber o valor do segundo, então a expressão retorna verdadeiro (T).
F or ? = Novamente, a operação OR retorna verdadeiro quando qualquer um dos dois itens é verdadeiro. Como o primeiro é falso, ficamos na dependência do valor do segundo. Se não somos capazes de afirmar que o valor nulo é verdadeiro ou falso, ficamos “na dúvida”, ou seja, o valor da operação é nulo, indeterminado (?).
T and ? e = O AND, para retornar verdadeiro, precisa que os dois valores envolvidos sejam verdadeiros. O lado esquerdo, do primeiro item, é verdadeiro, mas como o valor lógico do NULL é indeterminado, não somos capazes de afirmar nem que ele é verdadeiro, nem que é falso. Assim, a proposição tem o valor indeterminado (?).
F and ? = Como o AND precisa que ambos os itens sejam verdadeiros e já temos um falso no primeiro item, a expressão não pode ser verdadeira, independentemente do valor do ?. Dessa maneira, a proposição é falsa (F).
not ? = Por fim, o operador NOT apenas “troca o sinal” da proposição. Not verdadeiro retorna falso e not falso retorna verdadeiro. Como o NULL não é verdadeiro nem falso, o seu valor “contrário” também é indeterminado. (?)