A dicotomia entre condições suficientes e necessárias é muito utilizada na Filosofia. Suas raízes, porém, encontram-se na Lógica.


\(A \rightarrow B\)

Na lógica clássica, a implicação (usualmente representada pela seta \(\rightarrow\)) é uma relação binária entre proposições. Essa relação possui algumas leituras muito úteis, dentre as quais se destacam:

Se \(A \rightarrow B\), então

(1) \(A\) é suficiente para \(B\); e (2) \(B\) é necessário para \(A\).

Essas leituras podem ser compreendidas como formas alternativas de expressar dois famosos argumentos válidos: modus ponens

\[A \rightarrow B, A \Vdash B\]
Mostrar tabela-verdade
A B A -> B
1 1 1
1 0 0
0 1 1
0 0 1

e modus tollens

\[A \rightarrow B, \neg B \Vdash \neg A\]
Mostrar tabela-verdade
A ~A B ~B A -> B
1 0 1 0 1
1 0 0 1 0
0 1 1 0 1
0 1 0 1 1

Para entender como a interpretação funciona, considere o seguinte conjunto unitário:

\[\{ A \rightarrow B \}\]

O que acontece quando adicionamos \(A\) ao conjunto? Por modus ponens, obtemos \(B\). Poderíamos adicionar \(C, D, E, F, \ldots\) ao conjunto? Sim, poderíamos, mas é suficiente adicionar \(A\) para obter \(B\) (embora não seja necessário: poderíamos também adicionar \(B\) para obter \(B\)).

Agora, o que acontece quando adicionamos \(\neg B\) ao conjunto? Por modus tollens, obtemos \(\neg A\). Ou seja, na hipótese de que \(B\) é falso, concluímos que \(A\) deve ser falso. Em outras palavras, para \(A\) ser verdadeiro, é necessário que \(B\) seja verdadeiro (mas não é suficiente [por quê?]).


Transitividade

Uma das propriedades da implicação na lógica clássica é a transitividade:

Se \(A \rightarrow B\) e \(B \rightarrow C\), então \(A \rightarrow C\).

Trazendo para o discurso das condições, temos duas leituras possíveis:

1.

2.

Observe que, embora essas leituras sejam diferentes, elas são equivalentes (do ponto de vista formal, o argumento possui as mesmas premissas e a mesma conclusão).


Na computação

Em um processo computacional, se a informação \(A\) é suficiente para a informação \(B\), então no mesmo momento em que o computador possui a informação de que \([A]\) é \(true\), ele também possui a informação de que \([B]\) é \(true\) (analogamente, quando possui a informação de que \([B]\) é \(false\), possui a informação de que \([A]\) é \(false\)).

Vamos supor que existam três condições para serem testadas: \(A\), \(B\) e \(C\)

if (A)
    if (B)
        if (C) /* faça algo */
        else ...
    else ... 
else ..

Agora, vamos imaginar que sabemos (metalinguisticamente) que a informação \(A\) é suficiente para \(B\) e \(B\) é suficiente para \(C\). Por transitividade, \(A\) é suficiente para \(C\) e, portanto, o código acima poderia ser simplificado para

if (A)
else ...

Exemplo
Vamos imaginar que temos duas condições: (A) X pode dirigir; (B) X é maior de idade. Sabemos que (no Brasil) \((A) \rightarrow (B)\) Portanto, em um escopo no qual a condição \((A)\) é verdadeira, podemos inferir que a condição \((B)\) também é verdadeira.

Exercícios

FGV – IBGE – 2016

– Sem A, não se tem B – Sem B, não se tem C

Assim, conclui-se que: (a) A é suficiente para B e para C (b) B é necessário para A e para C (c) C é suficiente para A e para B (d) A e B são suficientes para C (e) B é necessário para A e suficiente para C

Mostrar solução
“Sem A, não se tem B”, ou seja, \(A\) é necessário para \(B\) (\(B \rightarrow A\)). “Sem B, não se tem C”, ou seja, \(B\) é necessário para \(C\) (\(C \rightarrow B\)). Por transitividade, \(A\) é necessário para \(C\) (\(C \rightarrow A\)) (reciprocamente, \(C\) é suficiente para \(A\)). Além disso, como \(C \rightarrow B\), temos que \(C\) é suficiente para \(B\). Portanto, alternativa (c) é verdadeira.

IADES – CFA – 2010

É necessário que Beatriz durma para que Sérgio fique feliz. Quando Beatriz dorme, então Romério faz uma visita. É necessário e suficiente que Romério faça uma visita para que Amélia descanse. Logo, quando Sérgio fica feliz, então

(a) Amélia descansa e Beatriz dorme. (b) Amélia não descansa ou Beatriz não dorme. (c) Beatriz não dorme e Romério faz uma visita. (d) Beatriz não dorme e Romério não faz uma visita.

Mostrar solução
Seja \(A\) = “Beatriz dorme”, \(B\) = “Sérgio fica feliz”, \(C\) = “Romélio faz uma visita”, \(D\) = “Amélia descansa”. Analisando o enunciado, obtemos que: \(B \rightarrow A\), \(A \rightarrow C\), \(C \leftrightarrow D\) a partir do que podemos inferir \(B \rightarrow C\) (por transitividade). Ou seja: se Sérgio fica feliz, então Romélio faz uma visita. E se Romélio faz uma visita, então Amélia descansa. Como estamos supondo que Sérgio fica feliz, então Amélia descansa. Além disso, como \(B \rightarrow A\), inferimos também que Beatriz dorme. Portanto, alternativa (a) é verdadeira.

FUNCAB – MDA – 2014

É necessário que a seleção brasileira vença para que o povo festeje. Quando a seleção vence, então os adversários choram. É necessário e suficiente que os adversários chorem para que a competição termine. Se o povo festeja, pode-se afirmar que:

(a) a competição termina e a seleção vence. (b) a competição não termina ou a seleção não vence. (c) a seleção não vence e os adversários choram (d) a seleção não vence e os adversários não choram. (e) a seleção não vence e a competição não termina

Mostrar solução
Seja \(A\) = “a seleção brasileira vence”, \(B\) = “o povo festeja”, \(C\) = “os adversários choram”, \(D\) = “a competição termina”. Analisando o enunciado, obtemos que: \(B \rightarrow A\), \(A \rightarrow C\), \(C \leftrightarrow D\). Temos, por hipótese, que vale \(B\). Portanto, vale \(A\) (“a seleção brasileira vence”). Como vale \(A\), então vale \(C\). Como vale \(C\), então vale \(D\) (“a competição termina”). Logo, alternativa (a) é verdadeira.

Prove que a transitividade é válida usando dedução natural.

Mostrar solução
1 A -> B hip
2 B -> C hip
3 [A] sup
3.1 B 1,3 (imp_elim)
3.2 C 2,3 (imp_elim)
4. A -> C 3,3.1 (imp_intro)

Prove que o modus tollens é válido usando dedução natural.

Mostrar solução
1 A -> B hip
2 ~B hip
3 [A] sup
3.1 B 1,3 (imp_elim)
3.2 B /\ ~B 2,3.1 (conj_intro)
3.3 bot  
4. ~A 3,3.1 (bot_elim)