Operador lógica NOT no Cálculo Lambda


Abstract

O operador lógico “NÃO” (NOT) no cálculo lambda, definido como , utilizando os booleanos de Church e .

No cálculo lambda, o operador lógico “NÃO” (NOT) é mais uma peça do quebra-cabeça da lógica funcional. Ele toma um valor booleano — “verdadeiro” () ou “falso” () — e retorna seu oposto.

Já vimos como e funcionam como seletores e como “E” (AND) e “OU” (OR) combinam esses valores. Agora, o “NOT” nos permite inverter a lógica, algo essencial para qualquer sistema computacional completo.

Definição

O operador lógico “NÃO” (NOT) no cálculo lambda é definido como:

Onde:

  • é um booleano no cálculo lambda ( ou ),
  • (escolhe o primeiro argumento),
  • (escolhe o segundo argumento).

Note

Essa função aplica aos argumentos e , usando para selecionar entre “falso” e “verdadeiro” de forma invertida.

A expressão funciona assim:

  • é o booleano de entrada.
  • Se , então (escolhe o primeiro argumento, ).
  • Se , então (escolhe o segundo argumento, ).

Visualizando operador NOT na tabela verdade

Para confirmar que corresponde ao “NÃO” lógico, testamos os dois casos possíveis de ( ou ) e comparamos com a tabela verdade da negação.

Tabela verdade do “NÃO” lógico:

Agora, calculamos para cada caso.

Caso 1:

  • Substituímos por :
  • Resultado: (falso).

Caso 2:

  • Substituímos por :
  • Resultado: (verdadeiro).

Resultado final

(calculado)Esperado ()

Referências


Aula 1 - Cálculo Lambda