Operador lógica OR no Cálculo Lambda


Abstract

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

No cálculo lambda, assim como vimos com o operador “E” (AND), o operador “OU” (OR) é codificado como uma função pura que opera sobre os booleanos (verdadeiro) e (falso).

A ideia do “OU” é simples: ele deve retornar “verdadeiro” se pelo menos um dos dois argumentos for verdadeiro, e “falso” apenas se ambos forem falsos.

Definição

O operador lógico “OU” (OR) no cálculo lambda é definido como:

Onde:

  • e são booleanos no cálculo lambda ( ou ),
  • (escolhe o primeiro argumento),
  • (escolhe o segundo argumento).

Note

Essa função usa como um “controlador”: se for verdadeiro, retorna ; se for falso, retorna o valor de .

A expressão funciona assim:

  • é aplicado aos argumentos e .
  • Se , então (escolhe , verdadeiro).
  • Se , então (escolhe , e o resultado depende de ).

Para transformar toda essa formalidade em forma mais visual e simples de interpretar isso e visualizar a função OR seria utilizando a tabela verdade abaixo:

Referência: Drawing 2025-03-03 10.40.11.excalidraw

Lemos essa imagem com a seguinte pergunta:

Visualizando operador OR na tabela verdade

Para confirmar que corresponde ao “OU” lógico, vamos testar todas as combinações de e ( ou ) e comparar com a tabela verdade do “OU”.

Tabela verdade do “OU” lógico:

Agora, calculamos para cada caso.

Caso 1: ,

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

Caso 2: ,

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

Caso 3: ,

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

Caso 4: ,

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

Resultado final

Esperado ()

Referências


Aula 1 - Cálculo Lambda