Vai al contenuto
Topos Uranos

Riepilogo

Ogni formula determina una tavola di verità; questa lezione dimostra l’affermazione inversa: ogni tavola, cioè ogni attribuzione di valori di verità alle righe, è la tavola di qualche formula. Definisce le funzioni di verità, conta quelle di nn argomenti (22n2^{2^{n}}) e precisa quando una formula ne rappresenta una. Dimostra poi il teorema di completezza funzionale mediante la formula della tavola, una disgiunzione di congiunzioni di letterali costruita riga per riga, che la lezione sulle forme normali userà come prima dimostrazione dell’esistenza della forma normale disgiuntiva. Poiché ogni formula del corso è una stringa di cerchi e dischi, ne segue senza altro lavoro che la negazione congiunta basta da sola, e si mostra come si scrive con essa qualsiasi funzione. Infine, studia quali insiemi di connettivi bastano a rappresentare tutte le funzioni: dimostra un criterio generale, lo applica a {¬,∧}\{\neg, \wedge\}, {¬,∨}\{\neg, \vee\}, {¬,→}\{\neg, \rightarrow\}, {↓}\{\downarrow\} e alla negazione alternativa, e dimostra che {∧,∨,→,↔}\{\wedge, \vee, \rightarrow, \leftrightarrow\} non basta, perché tutte le sue formule conservano il valore 11.

Obiettivi di apprendimento

  1. Contare le funzioni di verità di nn argomenti e decidere, mediante le funzioni che rappresentano, quando due formule sono equivalenti.
  2. Costruire, a partire dalla tavola di una funzione di verità, una formula che la rappresenti, e cercare una formula equivalente più breve quando convenga.
  3. Spiegare perché, nella lingua del corso, la negazione congiunta basta da sola, e scrivere soltanto con essa formule che rappresentino funzioni date.
  4. Dimostrare che un insieme di connettivi è adeguato, esprimendo con le sue formule la negazione congiunta.
  5. Dimostrare che un insieme di connettivi non è adeguato, mediante una proprietà che tutte le sue formule conservano.

Funzioni di verità

La lezione sulla semantica della logica proposizionale ha attribuito a ogni formula, in ogni assegnazione, un valore di verità, e ha mostrato che tale valore dipende solo dai valori delle variabili che vi compaiono; donde ogni formula con nn variabili ha una tavola di verità di 2n2^{n} righe. La domanda di questa lezione è quella inversa. Data una tavola qualsiasi, cioè una colonna di uni e zeri scritta arbitrariamente accanto alle 2n2^{n} righe, esiste una formula che l’abbia come tavola? Se è così per ogni tavola, il linguaggio non ha lacune espressive: tutto ciò che si può dire sul valore di verità di nn enunciati, in funzione dei loro valori, si dice con una formula. E poiché in questo corso ogni formula composta è una negazione congiunta, la risposta dirà anche se un solo connettivo basta per dire tutto.

Ciò che si usa dalle lezioni precedenti

Un’assegnazione è una funzione vv dall’insieme delle variabili {v1,v2,…}\{v_1, v_2, \ldots\} in {0,1}\{0, 1\}, dove 11 è il vero e 00 il falso; la sua estensione a tutte le formule, che si scrive anch’essa vv, è definita per ricorsione: v((φ↓ψ))=1v((\varphi \downarrow \psi)) = 1 se e solo se v(φ)=0v(\varphi) = 0 e v(ψ)=0v(\psi) = 0. Dalle abbreviazioni ufficiali, la stessa lezione ha calcolato, nel teorema dei valori dei connettivi derivati, il valore di ogni connettivo; scritti con somme e prodotti, sono i seguenti, per ogni assegnazione vv e tutte le formule φ\varphi e ψ\psi:

v(¬φ)=1−v(φ),v((φ∧ψ))=v(φ) v(ψ),v((φ∨ψ))=v(φ)+v(ψ)−v(φ) v(ψ)v(\neg\varphi) = 1 - v(\varphi), \qquad v((\varphi \wedge \psi)) = v(\varphi)\,v(\psi), \qquad v((\varphi \vee \psi)) = v(\varphi) + v(\psi) - v(\varphi)\,v(\psi)
v((φ→ψ))=1−v(φ)+v(φ) v(ψ),v((φ↓ψ))=(1−v(φ)) (1−v(ψ))v((\varphi \rightarrow \psi)) = 1 - v(\varphi) + v(\varphi)\,v(\psi), \qquad v((\varphi \downarrow \psi)) = (1 - v(\varphi))\,(1 - v(\psi))

Inoltre, v((φ↔ψ))=v(φ) v(ψ)+(1−v(φ)) (1−v(ψ))v((\varphi \leftrightarrow \psi)) = v(\varphi)\,v(\psi) + (1 - v(\varphi))\,(1 - v(\psi)), che vale 11 se e solo se v(φ)=v(ψ)v(\varphi) = v(\psi), e v((φ⊻ψ))=v(φ)+v(ψ)−2 v(φ) v(ψ)v((\varphi \veebar \psi)) = v(\varphi) + v(\psi) - 2\,v(\varphi)\,v(\psi), che vale 11 se e solo se v(φ)≠v(ψ)v(\varphi) \neq v(\psi). Poiché i valori sono 00 o 11, il quadrato di un valore è il valore stesso, v(φ) v(φ)=v(φ)v(\varphi)\,v(\varphi) = v(\varphi), e un prodotto di valori vale 11 se e solo se ogni fattore vale 11; entrambe le osservazioni si useranno senza ripeterle. Si usa anche il lemma di coincidenza: se due assegnazioni coincidono sulle variabili di φ\varphi, cioè sulle variabili che sono sottoformule di φ\varphi, danno a φ\varphi lo stesso valore. Dalla lezione su conseguenza ed equivalenza semantica si prende l’equivalenza semantica: φ≡ψ\varphi \eqsem \psi quando v(φ)=v(ψ)v(\varphi) = v(\psi) per ogni assegnazione vv. Infine, vale la convenzione delle lettere della lezione sulla formalizzazione: pp, qq e rr designano le variabili v1v_1, v2v_2 e v3v_3.

Le funzioni di verità e il loro numero

Sia nn un numero naturale. Una riga di nn valori è una successione a=(a1,…,an)a = (a_1, \ldots, a_n) in cui ogni aia_i è 00 o 11; l’insieme di tutte le righe si denota {0,1}n\{0, 1\}^{n}. Una funzione di verità di nn argomenti è una funzione

f ⁣:{0,1}n→{0,1}f\colon \{0, 1\}^{n} \to \{0, 1\}

che assegna a ogni riga un valore di verità. Si presenta come una tavola: le righe si scrivono nell’ordine della tavola, a partire da quella in cui tutti i valori sono 11 (per due argomenti, 1 11\,1, 1 01\,0, 0 10\,1, 0 00\,0), e accanto a ogni riga si scrive il suo valore. Una funzione di verità è dunque una tavola di verità senza formula: la colonna di destra, senza nulla scritto nella sua intestazione.

ProposizioneCi sono 22n2^{2^{n}} funzioni di verità di nn argomenti

Per ogni numero naturale nn, ci sono esattamente 2n2^{n} righe di nn valori e 22n2^{2^{n}} funzioni di verità di nn argomenti.

Dimostrazione

  1. 1 0 1    ⟼    ∙∘∙\dato{filas}{1\,0\,1 \;\; \longmapsto \;\; \sigI\sigO\sigI}

    Una riga è una successione di nn simboli, ciascuno dei quali è 11 o 00. Se si scrive il disco al posto di 11 e il cerchio al posto di 00, le righe corrispondono, una a una, alle stringhe di lunghezza nn sull’alfabeto di due simboli, che sono 2n2^{n} per il primo problema risolto della lezione sull’induzione, dimostrato lì per induzione su nn.

  2. f    ⟼    f(1,…,1)    …    f(0,…,0)f \;\; \longmapsto \;\; f(1, \ldots, 1) \;\; \ldots \;\; f(0, \ldots, 0)

    Una funzione di verità è determinata dai suoi valori sulle righe, e qualsiasi scelta di tali valori dà una funzione. Se si scrivono i valori nell’ordine della tavola, le funzioni corrispondono, una a una, alle successioni di 2n2^{n} simboli, ciascuno 11 o 00.

  3. 22n2^{\resaltar{2^{n}}}

    Per lo stesso conteggio, applicato ora a successioni di lunghezza 2n2^{n}, ci sono 22 elevato alla 2n2^{n} funzioni.

  4. 22=4,24=16,28=256,216=65 5362^{2} = 4, \quad 2^{4} = 16, \quad 2^{8} = 256, \quad 2^{16} = 65\,536

    I primi valori mostrano con quale rapidità cresce il numero: con cinque argomenti ci sono già più di quattro miliardi di funzioni.

EsempioLe funzioni di uno e di due argomenti

Le quattro funzioni di un argomento sono la costante 11, l’identità, quella che cambia il valore e la costante 00; le formule ⊤\top, pp, ¬p\neg p e ⊥\bot, dove ⊤:=(p→p)\top := (p \rightarrow p) e ⊥:=¬⊤\bot := \neg\top sono quelle fissate nella lezione sulla semantica, hanno, rispettivamente, queste tavole. Tra le sedici funzioni di due argomenti ci sono quelle dei sei connettivi del corso: la negazione congiunta, la disgiunzione, la congiunzione, l’implicazione, la doppia implicazione e la disgiunzione esclusiva. Ne restano altre dieci, tra cui le due costanti, quelle che tengono conto di uno solo degli argomenti e la negazione alternativa, che vale 00 solo quando entrambi gli argomenti valgono 11; il problema risolto 1 le classifica tutte.

Formule che rappresentano funzioni

Una formula e una funzione di verità si collegano nel modo seguente. Se φ\varphi è una formula le cui variabili sono tra v1,…,vnv_1, \ldots, v_n, si dice che φ\varphi rappresenta la funzione di verità ff di nn argomenti quando, per ogni assegnazione vv,

v(φ)=f(v(v1),…,v(vn))v(\varphi) = f(v(v_1), \ldots, v(v_n))

cioè quando la tavola di φ\varphi, scritta con le variabili v1,…,vnv_1, \ldots, v_n, è la tavola di ff. La condizione sulle variabili non è un dettaglio: la formula (p∧q)(p \wedge q) non rappresenta nessuna funzione di un argomento, perché il suo valore non dipende solo da quello di pp.

ProposizioneLa funzione di una formula

Sia φ\varphi una formula le cui variabili sono tra v1,…,vnv_1, \ldots, v_n. Allora φ\varphi rappresenta esattamente una funzione di verità di nn argomenti, che si denota fφf_\varphi. Se ψ\psi è un’altra formula le cui variabili sono tra v1,…,vnv_1, \ldots, v_n, allora φ≡ψ\varphi \eqsem \psi se e solo se fφ=fψf_\varphi = f_\psi.

Dimostrazione

  1. va(vi)=ai(i≤n),va(vk)=0(k>n)\dato{va}{v_a(v_i) = a_i \quad (i \leq n), \qquad v_a(v_k) = 0 \quad (k > n)}

    Per ogni riga aa c’è un’assegnazione che dà a ogni viv_i il valore aia_i: basta dare alle altre variabili il valore 00.

  2. v(vi)=v′(vi)=ai(i≤n)    ⇒    v(φ)=v′(φ)=fφ(a)v(v_i) = v'(v_i) = a_i \quad (i \leq n) \;\; \Rightarrow \;\; v(\varphi) = v'(\varphi) = \resaltar{f_\varphi(a)}

    Se due assegnazioni danno a v1,…,vnv_1, \ldots, v_n i valori della riga aa, coincidono sulle variabili di φ\varphi, e per il lemma di coincidenza danno a φ\varphi lo stesso valore. Tale valore comune si prende come fφ(a)f_\varphi(a); per costruzione, φ\varphi rappresenta fφf_\varphi.

  3. g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a)

    Se φ\varphi rappresenta anche una funzione gg, in ogni riga aa si ha g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a): la funzione rappresentata è unica.

  4. v(φ)=fφ(v(v1),…,v(vn))=fψ(v(v1),…,v(vn))=v(ψ)v(\varphi) = f_\varphi(v(v_1), \ldots, v(v_n)) = f_\psi(v(v_1), \ldots, v(v_n)) = v(\psi)

    Se fφ=fψf_\varphi = f_\psi, per ogni assegnazione vv i valori di φ\varphi e di ψ\psi sono il valore della stessa funzione nella stessa riga; donde φ≡ψ\varphi \eqsem \psi.

  5. fφ(a)=va(φ)=va(ψ)=fψ(a)f_\varphi(a) = v_a(\varphi) = v_a(\psi) = f_\psi(a)

    Viceversa, se φ≡ψ\varphi \eqsem \psi, in ogni riga aa l’assegnazione vav_a dà lo stesso valore a entrambe le formule, e quindi fφ(a)=fψ(a)f_\varphi(a) = f_\psi(a).

Ci sono infinite formule con variabili tra v1,…,vnv_1, \ldots, v_n e solo 22n2^{2^{n}} funzioni; quindi molte formule rappresentano la stessa funzione, e la proposizione dice che sono esattamente quelle equivalenti tra loro. Resta da sapere se ogni funzione è rappresentata da qualche formula, o se alcune tavole restano senza una formula che le abbia.