Efeito da Contradição
A regra pode ser lida como "de uma contradição é sempre possível concluir qualquer proposição".
Em termos práticos a lógica e a dedução natural são utilizadas para descrever e analizar um certo problema. Por exemplo, um programa, uma empresa, etc.
Supondo que a Dona Entrelinha é gestora (CEO!) de uma padaria e vai aplicar a lógica e a dedução natural para descrever e analisar o fluxo de trabalho. Começou com um conjunto de regras para o dia-a-dia da padaria:
Certo dia houve falta de farinha, pelo que a Dona Entrelinha acrescentou às regras e antecipou que, nesse dia, não teria lucro: porque
Linha | Proposição | Regra | Hipóteses |
---|---|---|---|
1 | não há ingredientes | ||
2 | admitindo que faz pão (5) descarte | ||
3 | 2, | ||
4 | 2, 6 | ||
5 | 1 - 3 | ||
6 | (regra derivada!) | ||
Caso 1 de 6 | |||
7 | (15) descarte | ||
8 | 7, 5 | ||
9 | 8, | ||
Caso 2 de 6 | |||
10 | (15) descarte | ||
11 | 10, | ||
12 | 6, 7-9, 10-11 |
Tentado manter o lucro, a Dona Entrelinha foi a uma padaria rival e comprou pão. Mas, com o stress da situação, esqueceu-se de retirar das hipóteses as proposições sobre os ingredientes. Ficou então com hipóteses
Ora, neste caso
Linha | Proposição | Regra | Hipóteses |
---|---|---|---|
1 | |||
2 | (5) | ||
3 | 1, | ||
4 | 3, 2 | ||
5 | 4 |
Na linha 5 podemos escrever qualquer proposição, i.e. qualquer proposição é consequência de !
Esta situação não é desejável porque qualquer teoria (conjunto de hipóteses) "útil" deve distinguir "verdade" de "falso"; os "factos" dos "enganos".
Uma teoria que permita contradições não é "útil" porque qualquer proposição é consequência dessa teoria.
E, se qualquer proposição é consequência, também a sua negação o é; se para qualquer proposição , então também .
Programação Lógica
As hipóteses iniciais da Dona Entrelinha podem ser descritas pelo seguinte programa ASP
:
ingredientes :- pao.
clientes :- lucro.
pao :- lucro.
-lucro :- clientes, -pao.
-lucro :- -clientes.
clientes ; -clientes.
Como é normal em programação lógica:
- Em vez de escreve-se usando a sintaxe
b :- a
, que se lê "b
sea
". Adicionalmente, - A negação é representada por
-a
. - A conjunção por
a, b
. - A disjunção por
a; b
.
Pode-se perguntar em que circunstâncias este programa é satisfeito. O resultado é
Solving...
Answer: 1
-clientes -lucro
Answer: 2
clientes
SATISFIABLE
Isto é, há duas formas (answer sets) destas regras serem cumpridas:
- Ou não há clientes nem lucro (
Answer: 1
). - Ou há clientes, mas não a garantia de lucro (
Answer: 2
) .
Recursos
- A linguagem
ASP
(Answer set programming) na wikipedia. - O sistema Potassco inclui o programa
clingo
que pode ser instalado ou correr no browser.