Riepilogo
La semantica aveva promesso metodi per decidere l’insoddisfacibilità senza percorrere la tavola di verità; questa lezione consegna il principale di essi. Si scrive un insieme di formule come un insieme di clausole, ciascuna un insieme finito di letterali, mediante la forma normale congiuntiva oppure, per evitarne la crescita esponenziale, mediante clausole di definizione con variabili nuove, che conservano la soddisfacibilità. Sulle clausole agisce una sola regola, quella di risoluzione: da una clausola che contiene un letterale e da un’altra che contiene il suo opposto si inferisce l’unione di entrambe senza quella coppia. Una refutazione è una derivazione che arriva alla clausola vuota. Si dimostrano la correttezza (se c’è una refutazione, l’insieme è insoddisfacibile), per induzione sulla lunghezza della derivazione, e la completezza refutazionale (se un insieme finito è insoddisfacibile, c’è una refutazione), per induzione sul numero delle variabili, eliminandole una alla volta; con il teorema di compattezza, la completezza si estende agli insiemi infiniti. Ne risultano un metodo per decidere le conseguenze, che si confronta con le tavole, e una presentazione del problema della soddisfacibilità, con due casi che si decidono rapidamente: le clausole di Horn e quelle di due letterali.
Obiettivi di apprendimento
- Rappresentare un insieme di formule come un insieme di clausole, mediante la forma normale congiuntiva o mediante clausole di definizione con variabili nuove, e giustificare che la rappresentazione conserva la soddisfacibilità e la conseguenza.
- Costruire refutazioni per risoluzione e decidere con esse conseguenze e insoddisfacibilità, senza incorrere negli errori tipici, come eliminare due coppie complementari in un solo passo.
- Dimostrare la correttezza della risoluzione per induzione sulla lunghezza delle derivazioni e la sua completezza refutazionale per eliminazione delle variabili, ed estenderla agli insiemi infiniti con il teorema di compattezza.
- Spiegare il problema della soddisfacibilità, il suo costo noto e i casi che si decidono rapidamente (clausole di Horn e di due letterali), e confrontare la risoluzione con le tavole di verità.
La lezione sulla semantica della logica proposizionale ha mostrato che la validità e la soddisfacibilità sono decidibili con la tavola di verità, a un costo che raddoppia a ogni variabile, e ha annunciato metodi che non richiedessero di percorrerla. La lezione su conseguenza ed equivalenza semantica ha ridotto ogni conseguenza a un’insoddisfacibilità: se e solo se è insoddisfacibile. Le lezioni sulle forme normali e sul loro algoritmo hanno dato a ogni formula una forma congiuntiva, la cui validità si vede a colpo d’occhio, ma la cui soddisfacibilità non si vede. Se le cose stanno così, manca una procedura che decida l’insoddisfacibilità di una congiunzione di clausole operando sulle clausole stesse. Questa procedura è la risoluzione, proposta da John Alan Robinson nel 1965 su idee di Martin Davis e Hilary Putnam (1960); è il nucleo dei programmi che oggi decidono la soddisfacibilità di formule con milioni di variabili. A differenza del sistema dell’unità sulla deduzione, le cui relazioni con la semantica sono studiate dalle lezioni sulla correttezza e completezza e su il teorema di compattezza, la risoluzione non deduce conclusioni: refuta insiemi. Questa lezione dimostra che lo fa in modo corretto e completo.
Come nelle lezioni precedenti, , , , e indicano le variabili da a ; la lettera senza indice, e anche , designano assegnazioni; e è l’insieme delle variabili di .
Clausole e insiemi di clausole
Si ricordi dalla lezione sulle forme normali che un letterale è una variabile o la negazione di una variabile, e che l’opposto di un letterale , scritto , è il letterale della stessa variabile e dell’altro segno; due letterali opposti formano una coppia complementare. Per il lemma sulla negazione di un letterale, per ogni assegnazione . Là una clausola era una disgiunzione di letterali; qui conviene dimenticare l’ordine e le ripetizioni, che non alterano il valore, e tenersi l’insieme.
Una clausola è un insieme finito di letterali. La clausola senza letterali si chiama clausola vuota e si scrive . Un’assegnazione soddisfa una clausola , e si scrive , se qualche letterale di vale in ; in caso contrario, la refuta. Una clausola di un solo letterale si chiama unitaria. Le variabili di una clausola formano l’insieme ; quelle di un insieme di clausole, l’insieme , unione dei precedenti. Un’assegnazione soddisfa un insieme di clausole, , se soddisfa ciascuna delle sue clausole; è soddisfacibile se qualche assegnazione lo soddisfa, e insoddisfacibile in caso contrario. Infine, se è un insieme di clausole e una clausola, significa che ogni assegnazione che soddisfa soddisfa .
Due casi estremi seguono dalla definizione, e conviene fissarli. La clausola vuota non ha letterali; quindi nessun suo letterale vale , e nessuna assegnazione la soddisfa: è insoddisfacibile, e lo è anche ogni insieme che la contenga. L’insieme vuoto di clausole, invece, non ha clausole da soddisfare, e ogni assegnazione lo soddisfa. Non vanno confusi: è insoddisfacibile e è soddisfatto da tutte le assegnazioni.
Sia una clausola non vuota, con i suoi letterali scritti in un ordine qualsiasi e senza ripetizioni. Per ogni assegnazione , se e solo se . In particolare, tutte le disgiunzioni dei letterali di , in qualsiasi ordine e con ripetizioni, sono equivalenti tra loro. Inoltre, è soddisfatta da ogni assegnazione se e solo se contiene una coppia complementare.
Dimostrazione
Per il lemma del valore delle disgiunzioni di formule, dimostrato nella lezione sulle leggi generalizzate di De Morgan e distributive, la disgiunzione vale se e solo se qualcuno dei suoi termini vale .
Che qualche valga significa che qualche letterale di vale , cioè che soddisfa . La condizione non dipende dall’ordine né dalle ripetizioni, perché chiede soltanto quali letterali ci sono.
Per il lemma sulle congiunzioni elementari e clausole (lezione sulle forme normali), una disgiunzione di letterali è valida se e solo se contiene una coppia complementare; per quanto precede, lo stesso vale per .
Una clausola che contiene una coppia complementare si chiama tautologica: non impone alcuna condizione e può essere tolta da qualsiasi insieme senza alterarne i modelli. Scrivere le clausole come insiemi non è un capriccio di notazione. Se da e si vuole ottenere , la disgiunzione dà , che equivale a ma non è la stessa formula; con gli insiemi, , e la fusione dei letterali ripetuti avviene da sola.
Sia . La clausola esige ; allora esige , e allora esige . L’assegnazione che dà a e a e alle altre variabili soddisfa , ed è l’unica possibilità su . Se si aggiunge la clausola , nessuna assegnazione soddisfa l’insieme ampliato: è insoddisfacibile, benché non contenga .
Caricamento del contenuto…