Nella logica, una funzione di verità[1] è una funzione da valori di verità a un valore di verità univoco. Essa accetta come input e come output un valore di verità vero oppure falso. L'esempio tipico è nella logica proposizionale, in cui una proposizione composta è costruita a partire da proposizioni atomiche collegate mediante connettivi logici; se il valore di verità dell'enunciato composto è interamente determinato dal/i valore/i di verità dell'enunciato/i costituente/i, l'enunciato composto è chiamato funzione di verità (del valore di verità delle proposizioni componenti) e qualsiasi connettivo logico utilizzato è detto vero-funzionale.[2]
La logica proposizionale classica è una logica vero-funzionale[3], dal momento che ogni affermazione possiede un valore di verità che è vero o falso, e ogni connettivo logico è vero-funzionale (che ha una tabella di verità corrispondente), quindi ogni affermazione composta è un funzione di verità.[4] D'altra parte, la logica modale non è vero-funzionale.
Un connettivo logico è vero-funzionale se il valore di verità di un enunciato composto è funzione del valore di verità dei suoi enunciati componenti. Una classe di connettivi è vero-funzionale se ciascuno dei suoi membri lo è. Ad esempio, il connettivo "e" è vero-funzionale poiché una frase come " Le mele sono frutti e le carote sono verdure " è vera se e solo se ciascuna delle sue frasi componenti "le mele sono frutti " e " le carote sono verdure " è vera; altrimenti è falso.
I connettivi della forma "x crede che ..." sono esempi tipici di connettivi che non sono vero-funzionali. Se ad esempio Mary crede erroneamente che Al Gore sia stato Presidente degli USA il 20 aprile 2000, ma non crede che la luna sia fatta di formaggio fresco, allora la frase
è vera, mentre
è falsa. In entrambi i casi, ogni frase componente (cioè " Al Gore era presidente degli USA il 20 aprile 2000 " e " la luna è fatta di formaggio verde ") è falsa, ma ogni frase composta formata anteponendo la frase " Mary crede che " differisce nel valore di verità. In altre parole, il valore di verità di una frase della forma " Maria crede che... " non è determinato unicamente dal valore di verità della sua frase componente, e quindi il connettivo (o semplicemente operatore poiché è unario) non è vero-funzionale.
La classe dei connettivi logici classici (come & , →) usati nella costruzione delle formule è vero-funzionale. Le tavole di verità stabiliscono i loro valori di verità in funzione del valore di verità variabile dei loro argomenti. Il calcolo proposizionale vero-funzionale è un sistema formale le cui formule possono essere interpretate come vere o false.
Nella logica a due valori, ci sono sedici possibili funzioni di verità, dette anche funzioni booleane, di due ingressi P e Q. Ognuna di queste funzioni corrisponde a una tavola di verità di un certo connettivo logico nella logica classica, inclusi diversi casi degeneri come una funzione che non dipende da uno o da entrambi i suoi argomenti.
Poiché una funzione può essere espressa come una composizione, un calcolo logico vero-funzionale non ha bisogno di simboli dedicati affinché tutte le funzioni sopra menzionate siano funzionalmente complete. Nel calcolo proposizionale l'equivalenza logica di alcune affermazioni composte fa sì che non siano necessari ulteriori simboli di calcolo specifici. Ad esempio, la logica classica ha ¬ P ∨ Q equivalente a P → Q: per un sistema logico a base classica, l'operatore condizionale "→" non è quindi necessario se "¬" (non) e "∨" (o) sono già in uso.
Un insieme minimo di operatori che possono esprimere ogni affermazione esprimibile nel calcolo proposizionale è chiamato insieme minimo funzionalmente completo. Un insieme minimamente completo di operatori è ottenuto dalla sola NAND {↑} e dalla sola NOR {↓}.
I seguenti sono gli insiemi minimi funzionalmente degli operatori le cui arietà è minore o uguale a 2[5]:
Alcune proprietà che una funzione di verità binaria (o un corrispondente connettivo logico) può avere sono:
Un insieme di funzioni di verità è funzionalmente completo se e solo se per ciascuna delle seguenti cinque proprietà contiene almeno un elemento che ne è privo:
Una funzione concreta può anche essere definita operatore . Nella logica a due valori ci sono 2 operatori nullari (costanti), 4 operatori unari, 16 operatori binari, 256 operatori ternari e operatori n -ari. Nella logica a tre valori ci sono 3 operatori nullari (costanti), 27 operatori unari, 19683 operatori binari, 7625597484987 operatori ternari e operatori n -ari. Nella logica a k valori, ci sono k operatori nullari, operatori unari, operatori binari, operatori ternari e operatori n -ari. Un operatore n-ario della logica con valori k è una funzione da . Pertanto, il numero di tali operatori è ,che è il modo in cui sono stati derivati i numeri sopra.
Tuttavia, alcuni degli operatori di una particolare arietà sono in realtà forme degenerate che eseguono un'operazione di arietà inferiore su alcuni input e ignorano il resto degli input. Dei 256 operatori booleani ternari sopra citati, sono tali forme degenerate di operatori binari o di arietà inferiore, come evidenziato dal principio di inclusione-esclusione. L'operatore ternario è uno di questi operatori degeneri che in realtà è un operatore unario applicato a un input x chee ignora gli altri due input y e z.
La negazione è un operatore unario, che assume un singolo argomento(es. ¬P). Gli altri operatori necessitano di almeno due argomenti per determinare una proposizione composta e si dicono quindi operatori binari: (P ∧ Q, P ∨ Q, P → Q, P ↔ Q).
L'insieme degli operatori logici Ω può essere suddiviso in sottoinsiemi disgiunti come segue:
In questa partizione, è l'insieme dei simboli degli operatori di arietà j.
Nel più famigliare calcolo proposizionale, è partizionato come segue:
Il principio di composizionalità permette di interpretare i simboli dei connettivi logici senza ricorrere ale tavole di verità, per mezzo di una funzione di interpretazione di un insieme di funzioni di verità funzionalmente completo (Gamut, 1991). Sia 'I la funzione di interpretazione, Φ, Ψ due proposizioni qualsiasi, e fnand la funzione di verità definita come:
Allora, per opportunità, fnot, for fand e così via con gli altri operatori, sono definiti per mezzo di fnand:
oppure, in alternativa, fnot, for fand e così via sono definiti direttamente:
allora:
etc.
Perciò, se S (abbreviazione di sentence) è una proposizione che è una stringa sia di simboli logici v1...vn che rappresentano altrettanti connettivi, che di simboli non logici c1...cn, quindi se e solo se I(v1)...I(vn) è stato elaborato interpretando v1 a vn per mezzo di fnand (o di un altro insieme funzionalmente completo di funzioni di verità), allora il valore di verità I(s) è interamente determinato dai valori di verità c1...cn, cioè da I(c1)...I(cn). In altre parole, come è atteso e richiesto inizialmente, S è vera o falso solo rispetto a un'interpretazione di tutti i suoi simboli non logici.
Gli operatori logici sono implementati come porte logiche nei circuiti digitali. Praticamente tutti i circuiti digitali (con l'eccezione principale della DRAM) sono costruiti da NAND, NOR, NOT e porte di trasmissione. Le porte NAND e NOR con 3 o più ingressi anziché i soliti 2 ingressi sono abbastanza comuni, sebbene siano logicamente equivalenti a una cascata di porte a 2 ingressi. Tutti gli altri operatori vengono implementati scomponendoli in una combinazione logicamente equivalente di 2 o più delle porte logiche di cui sopra.
L'"equivalenza logica" di "NAND solo", "NOR solo" e "NOT e AND" è simile all'equivalenza di Touring. Il fatto che tutte le funzioni di verità possono essere espresse solo con NOR è dimostrato dall'Apollo Guidance Computer.
Principia Mathematica, 2ª edizione
Tractatus Logico-Philosophicus, Proposizione 5.101