✖

Esercizi sulla logica proposizionale

In questo articolo vediamo alcune formule e le loro possibili assegnazioni di valori di verità, usando il metodo della tavola di verità.

Primo esercizio

Cerchiamo di capire quando questa formula è vera: ϕ = (p ∧ q) ∨ ¬q. Scriviamo nella tavola le variabili proposizionali p e q:

pq11100100

Poi aggiungiamo alla tavola la prima parte della formula, (p ∧ q), la negazione ¬q e infine l’intera formula:

pqp∧q¬qϕ11100100

Ora calcoliamo i valori della terza colonna, cioè una semplice congiunzione, e anche quelli della negazione: qui basta scrivere i valori opposti a quelli della seconda colonna:

pqp∧q¬qϕ1110100101000001

Infine calcoliamo i valori dell’ultima colonna, che corrisponde all’intera formula. Nella nostra tavola si tratta quindi di calcolare la disgiunzione «tra la terza e la quarta colonna». Risultato:

pqp∧q¬qϕ11101100110100000011

Secondo esercizio

Stessa consegna, formula diversa: ϕ = (p ∧ ¬q) ⇔ (¬p ⇒ q). Vediamo che nella formula compaiono le variabili proposizionali p e q e le loro negazioni. Per prima cosa costruiamo quindi una tavola con le due variabili e le loro negazioni:

pq¬p¬q1100100101100011

Poi aggiungiamo le formule p ∧ ¬q e ¬p ⇒ q, che ora sappiamo valutare facilmente, perché nella tavola abbiamo sia i valori delle singole proposizioni sia quelli delle loro negazioni. La tavola si presenta così:

pq¬p¬q(p∧¬q)(¬p⇒q)110001100111011001001100

Per ultima ci resta da valutare l’intera formula, che è un’equivalenza tra le ultime due colonne:

pq¬p¬q(p∧¬q)(¬p⇒q)ϕ1100010100111101100100011001

Terzo esercizio

Il terzo esercizio è un po’ più complicato: proviamo con tre variabili proposizionali, per cui il calcolo della tavola diventa più laborioso. La formula è la seguente: ϕ = (¬(p ⇒ q)) ∧ (r ⇔ (¬p ∨ q)).

Poiché ci sono tre variabili proposizionali, il numero totale delle possibili assegnazioni di valori è otto:

pqr111110101100011010001000

Da qui in poi procediamo come nel caso precedente: valutiamo ogni colonna in tutte e otto le righe. L’intera tavola si presenta così:

pqr¬p(p⇒q)(¬p∨q)¬(p⇒q)(r⇔(¬p∨q))ϕ111011010110011000101000100100000111011111010010111000001111010000111000

Quarto esercizio

Questo esercizio non è dato come una semplice formula, ma come un problema espresso a parole. Tre amici vogliono andare a una festa scatenata, ma non vanno molto d’accordo e pongono delle condizioni per andarci. Si chiamano Marco, Giacomo e Pietro. Le regole sono le seguenti:

  1. Se va Marco, va anche Giacomo.
  2. Alla festa viene Pietro oppure, se viene Marco, non viene Giacomo.
  3. Pietro viene se e solo se non viene Marco o non viene Giacomo.

La domanda è: possono andare tutti alla festa? Se no, chi può andarci senza violare nessuna regola?

Per prima cosa dobbiamo riscrivere le affermazioni a parole usando variabili proposizionali e formule. Indichiamo quindi le variabili proposizionali con M, G e P (Marco, Giacomo, Pietro); ognuna indicherà una proposizione del tipo «Marco va alla festa». La prima regola si può scrivere così: M ⇒ G — «se M, allora G», cioè «se Marco va alla festa, allora Giacomo va alla festa».

La seconda regola la scriviamo così. La regola comincia con la frase «Alla festa viene Pietro oppure…», quindi ci servirà evidentemente una disgiunzione. Per ora scriviamo: P ∨ … La parte successiva della frase dice: «se viene Marco, non viene Giacomo». Questa è un’implicazione, in cui a destra dobbiamo usare anche una negazione. «Non viene Giacomo» = ¬G. L’intera implicazione si scrive così: M ⇒ ¬G. La colleghiamo alla disgiunzione precedente: P ∨ (M ⇒ ¬G).

La terza regola la riscriviamo così: partiamo da «Pietro viene se e solo se». Questo indica un’equivalenza: P ⇔ … Poi abbiamo «non viene Marco o non viene Giacomo», che scriviamo così: ¬M ∨ ¬G. Mettendo tutto insieme: (P ⇔ (¬M ∨ ¬G)).

Ora inseriamo tutte le formule nella tavola e calcoliamo i valori:

MGP(M⇒G)(P∨(M⇒¬G))(P⇔(¬M∨¬G))111110110101101011100010011111010110001111000110

La domanda era se tutti e tre i ragazzi possono andare alla festa. La risposta si trova nella prima riga, che corrisponde al caso in cui vanno tutti: lo indicano i tre 1 nelle prime tre colonne. Sono soddisfatte tutte le condizioni? La prima sì (quarta colonna), anche la seconda (quinta colonna), ma l’ultima no (ultima colonna), dove c’è uno zero. Questo significa che, se vanno tutti e tre, la terza condizione non è soddisfatta.

Cerchiamo quindi le righe in cui nelle posizioni che rappresentano le condizioni (cioè nelle ultime tre colonne) ci sono solo 1. Un 1 significa che la condizione è soddisfatta. Vediamo che ciò accade in due casi: quando vanno Giacomo e Pietro ma non Marco, e quando va solo Pietro.

Puoi calcolarlo anche aggiungendo alla tavola la formula ϕ, che sarà la congiunzione delle tre condizioni. Avremo quindi: ϕ = ((M ⇒ G) ∧ (P ∨ (M ⇒ ¬G)) ∧ (P ⇔ (¬M ∨ ¬G))). Questa formula esprime ciò che vogliamo: che tutte le formule (tutte le condizioni) siano soddisfatte. La tavola si presenta quindi così:

MGP(M⇒G)(P∨(M⇒¬G))(P⇔(¬M∨¬G))ϕ11111001101010101011010001000111111010110000111110001100

Altri esercizi sul metodo della tavola di verità

Dato che ho scritto un programma che costruisce automaticamente l’intera tavola a partire da una formula, devo sfruttarlo a dovere, e quindi seguono ancora alcune formule svolte:

Formula: ((a ∧ ¬b) ∨ (b ∧ (b ⇒ a))). Tavola:

ab(a∧¬b)(b∧(b⇒a))((a∧¬b)∨(b∧(b⇒a)))11011101010100000000

Formula: (a ∨ ¬a) ⇔ (b ∧ ¬b). Tavola:

ab(a∨¬a)(b∧¬b)((a∨¬a)⇔(b∧¬b))11100101000110000100

Formula: ¬(a ∨ b) ⇔ (¬b ∧ ¬a). Tavola:

ab¬(a∨b)(¬b∧¬a)(¬(a∨b)⇔(¬b∧¬a))11001100010100100111

Formula: ϕ = (¬p ⇔ (q ∧ r)) ⇒ (p ∨ ¬(p ∧ q)). Tavola:

pqr(q∧r)¬(p∧q)(¬p⇔(q∧r))(p∨¬(p∧q))ϕ1111001111000111101011111000111101111111010010110010101100001011

Formula: ϕ = ¬(p ⇔ ¬q) ∧ (r ⇒ ¬p) ∧ (p ∨ r). Tavola:

pqr¬(p⇔¬q)(r⇒¬p)(p∨r)ϕ11110101101111101001010001100110110010010000111110001100

Capitoli: Logica proposizionale, Valore di verità delle formule, Esercizi sulla logica proposizionale