A dicotomia entre condições suficientes e necessárias é muito utilizada na Filosofia. Suas raízes, porém, encontram-se na Lógica.
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\]
A | B | A -> B |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 1 |
0 | 0 | 1 |
\[A \rightarrow B, \neg B \Vdash \neg A\]
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ê?]).
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).
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 ...
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
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.
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
Prove que a transitividade é válida usando dedução natural.
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.
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) |