Newsgroup: it.cultura.filosofia
Titolo: Proposizioni condizionali

Qualcuno sa spiegarmi in parole povere perchč le proposizioni condizionali
con antecedente falso sono sempre vere? Per fare un esempio, dicendo "Se
2+2=4 allora Londra č sulla Luna" capisco intuitivamente che č falsa, ma se
dico "Se Londra č sulla Luna allora 2+2=4" non afferro immediatamente che
sia vera.
Grazie,
Mercurius

 ha scritto nel messaggio
news:hPZAb.172661$hV.64...@news2.tin.it...

da ipotesi false puoi trarre le conclusioni che vuoi:
" Se tu ancora non sei nato io sono napoleone bonaparte"
č assolutamente vera.
R.

 2+2=4" non afferro immediatamente che sia vera.
Non è tanto una questione di "afferrare", quanto quella di stabilire delle
*convenzioni*.
Date due proposizioni A e B, per definire A=>B dobbiamo costruire la
"tabella di verità" di A, B e A=>B.
L'uso comune della implicazione ci consente di scrivere subito con assoluta
certezza una della quattro righe della tabella:
A = .V.   |   B = .F.   |   A=>B = .F.
Sulle altre tre righe c'è da discutere.
Potremmo anche osservare che l'uso comune non impone dei vincoli su quelle
tre righe, e quindi da un punto di vista logico l'operatore di implicazione
"=>" è indeterminato: abbiamo solo una informazione sulle quattro che ci
servono per determinarlo completamente. Quindi a meno che non lo si voglia
abbandonare come parola di uso comune, per portarlo in un quadro logico
occorre eliminare quella indeterminazione.
Potremmo semplicemente riempire a caso quelle altre tre righe, ma visto che
la cosa è "artitraria" sarà meglio cercare di "riempire gli spazi vuoti" in
un modo che possa tornare utile, o che fornisca un qualche approccio
intuitivo.
Qui di seguito ti illustro alcune "convenzioni" che possiamo decidere di
adottare per completare quella tabella.
=====[1]=====
Intanto potremmo procedere in modo "filologico", ed osservare che il <se...
allora...> potrebbe essere inteso così:
<quando accade che... in quella circostanza accade anche che...>.
dove abbiamo sfruttato il fatto che etimologicamente "allora" deriva da
"illa hora": "in quel tempo"; mentre il "se" anche nell'uso comune è spesso
sostituito dal "quando":
<se anche... > = <quand'anche...>
La precedente "sostituzione" può anche essere intesa così:
<ogni volta che... accade anche che...>
Ecco, proviamo ad usare questa per completare la nostra tabella di verità.
Tu dici:
<se <Londra è sulla Luna> allora <2+2=4>>
ed io la trasformo così:
<quando accade che <Londra è sulla Luna> in quella circostanza accade anche
che <2+2=4>>
oppure:
<ogni volta che <Londra è sulla Luna> accade anche che <2+2=4>>
Dunque, a te queste sembrano false?
Ti sto dicendo:
a) supponiamo che Londra sia sulla Luna;
b) ecco, quando ciò avvenisse noi potremmo dire che <2+2=4>
Non è vero che potremmo dirlo? Lo possiamo dire *sempre*, e a maggior
ragione lo possiamo dire se/quando per caso ci venissero a dire che Londra è
finita sulla Luna!
Anzi, ti dirò di più: ragionando in questo modo possiamo dire che A=>B è
sicuramente vera tutte le volte che B è vera, a prescindere dal fatto che A
sia vera o falsa.
Quindi abbiamo altre due righe della nostra tabella:
A = .V.   |   B = .V.   |   A=>B = .V.
A = .F.   |   B = .V.   |   A=>B = .V.
Ora ci manca un'ultima riga:
A = .F.   |   B = .F.   |   A=>B = .?.
Per decidere che fare in questa circostanza sfruttiamo un altro "senso
comune" sulle implicazioni: il cosiddetto "modus tollens".
Dunque, se io ti dico che A implica B, allora tu sarai d'accordo con me
nell'affermare che nel caso in cui B si rivelasse falsa io dovrei concludere
che anche A è falsa.
Facciamo un esempio. Io dico:
se <è un quadrato> allora <ha tutti i lati uguali>
E' chiaro che non la posso invertire, perché se so che <ha tutti i lati
uguali> non posso essere certo che <è un quadrato>. Tuttavia la posso
"invertire in negativo":
se *non* <ha tutti i lati uguali> allora *non* <è un quadrato>.
Ecco dunque il nostro "modus tollens":
~A => ~B
che si ricava dal "modus ponens":
A => B
Bene, ora siamo pronti per completare la nostra riga ignota:
A = .F.   |   B = .F.   |   A=>B = .?.
infatti nel modus tollens le prime due colonne diventano:
~A = .V.   |   ~B = .V.   |   ~A=>~B = .?.
Ma questa volta lo sappiamo cosa mettere al posto del punto interrogativo,
perché precedentemente avevamo stabilito che quando l'antecedente e la
conseguente sono entrambe vere allora anche il condizionale è vero. Dunque:
~A = .V.   |   ~B = .V.   |   ~A=>~B = .V.
e poiché
(A=>B) = (~A=>~B)
si ha che
A = .F.   |   B = .F.   |   A=>B = .V.
A questo punto abbiamo completato la nostra tabella di verità del
condizionale, basandosi solo sul senso comune. O -meglio- facendo delle
opportune scelte convenzionali fra tutto ciò che sembra suggerirci il senso
comune.
Ecco la tabella completa:
A = .V.   |   B = .V.   |   A=>B = .V.
A = .V.   |   B = .F.   |   A=>B = .F.
A = .F.   |   B = .V.   |   A=>B = .V.
A = .F.   |   B = .F.   |   A=>B = .V.
=====[2]=====
C'è un altro modo di procedere, che è molto più potente e "razionale", ma è
un po' meno intuitivo.
Per prima cosa bisogna osservare che se prendiamo A e B, possiamo in
generale definire fra di essi una "operazione logica", detta anche
"connettivo logico". Questa "operazione" sarà in genere rappresentata da un
simbolo "@" (me lo sto inventando), sicché da due proposizioni A e B potremo
sempre ricavare la proposizione A@B.
Ebbene, il "connettivo" @ sarà completamente definito non appena sia
definita la tavola di verità di A, B, A@B.
Quanti sono i possibili connettivi?
Semplice: basta contare il numero delle possibili tavole di verità: le righe
sono 4, ed in ogni riga in A@B ci possiamo mettere due diversi valori (.V. o
.F.), quindi le possibili tabelle sono 2^4 = 16.
Esistono 16 possibili connettivi diversi, né uno di più né uno di meno.
Ora, tutti questi operatori di dicono "binari", perché agiscono su *due*
operandi. Se vogliamo potremmo anche scrivere il tutto in forma funzionale,
così: @(A,B)
Ovviamente potremmo anche definire operatori "ternari" eccetera.
Non solo, ma possiamo anche definire un operatore "singolare" che agisce su
una singola proposizione.
I possibili operatori singolari sono 4. Di questi 4 uno è l'identità, altri
due sono il "sempre vero" e "sempre falso" (che sono poco interessanti
perché non ci dicono nulla della proposizione su cui agiscono, e tanto vale
prendere le "costanti" .V. e .F.) ed il quarto è invece la *negazione* (~),
che inverte il valore di verità di una proposizione.
Ebbene, si può dimostrare che tutti e 16 i "connettivi", cioè gli "operatori
binari", possono essere ottenuti combinando opportunamente *un* solo
"connettivo" (da scegliere arbitrariamente come "connettivo fondamentale")
con la *negazione*.
Dunque, per prima cosa dobbiamo decidere qual è il nostro connettivo
"fondamentale". I due che sono chiaramente definiti dal "senso comune" sono
*et* (&) e la disgiunzione non esclusiva *vel* (V)
Decidiamo, per fissare le idee, di prendere "V" come connettivo
fondamentale.
Per quanto abbiamo detto, combinando opportunamente "V" e "~" dovremmo
essere in grado di ottenere qualunque altro connettivo.
Ora, poiché il nostro connettivo "=>" non è univocamente definito dal senso
comune, dovremmo decidere una volta per tutte come esprimerlo in funzione di
"V" e di "~".
Ti ricordo che il senso comune ci suggerisce solo questo:
A = .V.   |   B = .V.   |   A=>B = ?
A = .V.   |   B = .F.   |   A=>B = .F.
A = .F.   |   B = .V.   |   A=>B = ?
A = .F.   |   B = .F.   |   A=>B = ?
Inoltre abbiamo anche recuperato dal senso comune il "modus tollens", il
quale ci mostra che la prima e l'ultima riga devono avere lo stesso
contenuto:
A = .V.   |   B = .V.   |   A=>B = .X.
A = .V.   |   B = .F.   |   A=>B = .F.
A = .F.   |   B = .V.   |   A=>B = ?
A = .F.   |   B = .F.   |   A=>B = .X.
Il modo più semplice di combinare "V" e "~" per soddisfare tutti questi
requistiti sarebbe quello di porre:
<A => B>  =  < ~A V B>
Dunque, stiamo sostenendo questo:
<Affermare che A implica B è come dire che o A è falsa o B è vera.>
Ci convince la cosa?
Stiamo dicendo che:
1) A=>B è sempre vera quando B è vera, a prescindere dal valore di A
2) A=>B è sempre vera quando A è falsa, a prescindere dal valore di B
3) A=>B è falsa *solo* quando A è vera e B è falsa.
Il punto 3) è l'unico "punto fermo" in tutta questa faccenda, perché è
quello che ci suggerisce il senso comune.
Il punto 1) è quello che tu dici di "capire intuitivamente", e non ci
facciamo problemi.
Infine il punto 2) è quello che per te è tutt'altro che intuitivo.
Potresti essere contrario ad accettare la mia proposta, tuttavia a questo
punto potrei farti osservare quanto segue:
a) ho già detto che c'è un teorema che dimostra che con una combinazione di
"~" e di "V" devo poter ottenere tutti i connettivi, e quindi anche "=>"
b) mi sembra che tu sia d'accordo che nella prima riga della tabella di "=>"
ci va .V. ma allora, se vogliamo "salvare" il "modus tollens" (altrimenti
gettiamo nel cesso duemila anni di logica) dobbiamo scrivere .V. anche
nell'ultima riga.
Quindi a voler essere appena appena "ragionevoli" abbiamo una sola riga
incognita:
A = .V.   |   B = .V.   |   A=>B = .V.
A = .V.   |   B = .F.   |   A=>B = .F.
A = .F.   |   B = .V.   |   A=>B = ?
A = .F.   |   B = .F.   |   A=>B = .V.
e dobbiamo ancora decidere come combinare "~" e "V" per ottenere "=>".
Ora, chi potrebbe essere a rendere vera l'ultima riga se non la negazione
della antecedente? Potremmo anche pensare che sia la negazione della
conseguente, ma allora ci diventerebbe vera anche la seconda riga, che
invece è l'unica della quale sappiamo con certezza che è falsa!
Quindi non si scappa: dobbiamo ammettere che se l'antecendente è falsa
allora l'implicazione è vera. Abbiamo quindi la conferma che avevamo fatto
bene a porre:
<A => B>  =  < ~A V B>
e questo ci consente di completare la tabella nel modo che ormai è divenuto
consueto:
A = .V.   |   B = .V.   |   A=>B = .V.
A = .V.   |   B = .F.   |   A=>B = .F.
A = .F.   |   B = .V.   |   A=>B = .V.
A = .F.   |   B = .F.   |   A=>B = .V.
--
Ciao,
Davide

 A => B
Ossignůr!
Vabbe', č chiaro che a partire dal ponens A=>B si ottiene il tollens
~B => ~A
e *non* quello che ho scritto io.

 A = .F.   |   B = .F.   |   A=>B = .V.
Ecco, qui sono andato avanti col copia-incolla è li ho sbagliati *tutti*!
Comunque il ragionamento resta lo stesso.
Basta porre:
(A=>B) = (~B=>~A)
e poi procedere di conseguenza.
La cosa importante da capire è che se A e B sono entrambe false allora ~A e
~B sono entrambe vere.
Sorry.

Grazie per le vostre risposte, adesso mi devo mettere lě a leggerle con
calma.
Ciao,
Mercurius