Fondamenti di Informatica

Logica Proposizionale

La logica proposizionale si occupa della verità o falsità di proposizioni composte sulla base della verità o falsità delle proposizioni che le compongono. Una proposizione è una frase di senso compiuto che può essere vera o falsa, come “fa caldo”, “c’è molta umidità”, o “si sta bene”. Per comodità di manipolazione si suole contrassegnare ciascuna proposizione con un simbolo; “fa caldo” potrebbe essere P,
“c’è molta umidità ” potrebbe essere Q
“si sta bene” R.
Una proposizione “composta” può essere ottenuta a partire da una o più proposizioni “semplici” o atomiche (cosi dette perché non possono essere ulteriormente scomposte) mediante l’uso di un certo numero di connettivi logici:

La logica proposizionale è un linguaggio la cui sintassi è quella delle formule ben formate o “fbf”. Il valore di verità (V “vero” o F “falso”) di una fbf dipende dai valori di verità delle proposizioni che la compongono. Il valore di verità delle preposizioni atomiche dipende invece dal contesto in cui le vogliamo calare, ovvero dalla particolare interpretazione che vogliamo dare loro. Un’interpretazione è un assegnamento di valori di verità ad ogni proposizione atomica. Data un’interpretazione, il valore di verità di ogni fbf può essere calcolato utilizzando le tabelle di verità dei vari connettivi logici:

Una fbf è valida se e solo se è vera per qualsiasi interpretazione; si dice anche che è una tautologia. Un esempio di tautologia è

L’opposto di una fbf valida è una fbf inconsistente, ovvero una contraddizione, cioè una fbf che è falsa per qualsiasi interpretazione: per esempio:

A metà strada tra il regno delle tautologia e il regno delle contraddizioni c’è la terra di mezzo delle fbf soddisfacibili: una fbf è soddisfacibile se e solo esiste almeno un’interpretazione per cui essa è vera; in tal caso si dice che quell’interpretazione soddisfa la fbf. Spesso e volentieri, programmando, capita di dover dimostrare che qualcosa segua logicamente da qualcos’altro, come capita spesso di dover dimostrare dei teoremi con l’ausilio della logica. Sebbene si tenda spesso a pensare che la dimostrazione di teoremi sia un compito di esclusivo appannaggio dei matematici, l’attività di concepire e scrivere programmi spesso richiede, a volte in modo banale, a volte in modo formale, la dimostrazione di teoremi, se non altro per assicurarsi che una certa sequenza di operazioni elementari (i passi di un algoritmo) sortiscano sempre e necessariamente l’effetto desiderato.























Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.