Risoluzione (logica)

In logica matematica e dimostrazione automatica di teoremi, la risoluzione è una regola d'inferenza che porta a una tecnica di dimostrazione completa per refutazione per enunciati in logica proposizionale e logica del primo ordine. Nella logica proposizionale, l'applicazione sistematica della regola di risoluzione costituisce una procedura di decisione per l'insoddisfacibilità, il che risolve il (complemento del) problema di soddisfacibilità booleana. Nella logica del primo ordine, si può usare la risoluzione come base per un algoritmo parziale per il problema di insoddisfacibilità della logica del primo ordine, il che fornisce un metodo più pratico rispetto ad uno che segua dal teorema di completezza di Gödel.

La regola di risoluzione può essere ricondotta al lavoro di Davis e Putnam (1960); tuttavia, il loro algoritmo richiedeva di provare tutte le istanze ground della formula data. Questa fonte di esplosione combinatoria è stata eliminata nel 1965 dall'algoritmo di unificazione sintattica[1], dovuto a John A. Robinson, il quale permette di istanziare la formula nel corso della dimostrazione ove richiesto al fine di preservare la completezza per refutazione.

Una forma di risoluzione su clausole di Horn del primo ordine è alla base del funzionamento degli interpreti del linguaggio di programmazione Prolog.

Risoluzione in logica proposizionale

La regola di risoluzione in logica proposizionale è una regola d'inferenza valida che produce una nuova clausola, i.e. una disgiunzione di letterali, implicata da due clausole che contengono letterali complementari. Un letterale è costituito da una variabile proposizionale o la sua negazione . Due letterali sono detti complementari se uno è la negazione dell'altro (come per e viceversa). La clausola risultante detta risolvente contiene tutti i letterali che non abbiano complementari. Formalmente:

dove tutti gli , , e sono letterali e la riga separa le premesse dalle conseguenze.

La regola può essere scritta anche come segue:

La clausola prodotta dalla regola di risoluzione si chiama risolvente delle due clausole in premessa.

Quando le clausole in premessa contengono più letterali complementari, si può applicare la regola di risoluzione a ogni coppia in modo indipendente; il risultato è sempre una tautologia.

La regola del modus ponens può essere considerata un caso speciale di risoluzione (di una clausola con un solo letterale e una con due letterali). Infatti:

è equivalente a

Risoluzione nella logica del primo ordine

Nel caso delle clausole del primo ordine, rappresentando equivalentemente le disgiunzioni di letterali del primo ordine come insiemi di atomi o loro negazioni, la regola di risoluzione può essere definita come segue:

dove le premesse sono clausole che non hanno variabili comuni e è un unificatore più generale dei letterali complementari e , i.e. una sostituzione (di variabili con termini) tale che .

Esempio

Applicando la regola alle clausole e con l'unificatore (dove e sono variabili e è una costante):

nomenclatura:

  • le clausole e sono le premesse dell'inferenza
  • , clausola risolvente delle premesse, è la conclusione
  • si risolve sul predicato detto pivot
  • è il letterale risolto a sinistra, è il letterale risolto a destra
  • è un unificatore più generale dei letterali risolti

Risoluzione e Sillogismi

In logica del primo ordine, la risoluzione riassume in un'unica regola i sillogismi classici dell'inferenza logica.

Si consideri il seguente esempio:

Tutti i greci sono europei.
Omero è un greco.
Quindi Omero è un europeo.

In formule generali:

pertanto,

Risoluzione Non-clausale

Sono state proposte diverse generalizzazioni della regola sopra descritta in cui non si richiede che le premesse siano in forma di clausola.[2][3][4][5]

Note

  1. ^ Robinson, J. Alan, A Machine-Oriented Logic Based on the Resolution Principle, in Journal of the ACM, vol. 12, n. 1, ACM, pp. 23–41, DOI:10.1145/321250.321253, S2CID: 14389185.
  2. ^ Wilkins, D, QUEST: A Non-Clausal Theorem Proving System (Master's Thesis), University of Essex, 1973.
  3. ^ Manna, Zohar and Waldinger, Richard, A Deductive Approach to Program Synthesis, in ACM Transactions on Programming Languages and Systems, vol. 2, Jan. 1980, pp. 90–121, DOI:10.1145/357084.357090.
  4. ^ Murray, Neil V., A Proof Procedure for Quantifier-Free Non-Clausal First Order Logic, in Technical report: Electrical Engineering and Computer Science, Syracuse University, vol. 39, feb. 1973.
  5. ^ N.V. Murray, Completely Non-Clausal Theorem Proving, in Artificial Intelligence, vol. 18, 1982, pp. 67–85, DOI:10.1016/0004-3702(82)90011-x.

Voci correlate

Collegamenti esterni