Permettere e essere -vettori di variabili booleane. Ho un predicato booleano su . Do al mio amico Priscilla. In risposta, mi dà, un predicato booleano su e lei lo afferma
o in altre parole, quello
Vorrei verificare la sua richiesta in qualche modo. In che modo Priscilla può aiutarmi a verificare questo reclamo?
Puoi presumere che entrambi e sono rappresentati come formule CNF e non sono troppo grandi (dimensione polinomiale o qualcosa del genere).
In un mondo ideale, sarebbe fantastico se potessi ridurre il problema di verificare questo reclamo a SAT: ho un solutore SAT, e sarebbe bello se potessi usare il solutore SAT per verificare questo reclamo. Tuttavia, sono abbastanza sicuro che non sarà possibile formulare il problema di verificare questa affermazione direttamente come istanza SAT; testare la validità di una formula 2QBF è quasi certamente più difficile di SAT. (Il la direzione è facile da formulare come istanza SAT, ma la la direzione è difficile perché coinvolge intrinsecamente due quantificatori alternati.)
Ma supponiamo che Priscilla possa darmi alcune prove aggiuntive a sostegno della sua richiesta. Ci sono ulteriori prove o testimonianze che Priscilla potrebbe darmi, il che mi renderebbe più semplice verificare la sua richiesta? In particolare, ci sono ulteriori prove o testimonianze che potrebbe darmi, il che mi renderebbe più semplice formulare il problema di verificare il suo reclamo come istanza di SAT (a cui posso quindi applicare il mio solutore SAT)?
Un aspetto insolito della mia impostazione è che sto assumendo (euristicamente) che ho un oracolo per SAT. Se ti piace la teoria della complessità, puoi pensarci in questo modo: sto assumendo il ruolo di una macchina in cui è possibile calcolare le cose (ovvero, in ) e sto cercando di verificare l'affermazione di Priscilla utilizzando un algoritmo in . I miei ringraziamenti a mdx per questo modo di pensare alle cose.
La mia motivazione / applicazione: sto cercando di fare una verifica formale di un sistema (ad es. Controllo simbolico del modello) e un passaggio chiave nel ragionamento prevede l'eliminazione di quantificatori (ovvero, a partire da , ottenere ). Spero in un modo pulito per verificare che l'eliminazione del quantificatore sia stata eseguita correttamente.
Se non esiste una soluzione che funzioni per tutto il possibile , sentiti libero di suggerire una soluzione "sana ma non completa", ovvero una tecnica che per molti mi consente di verificare l'equivalenza dichiarata. (Anche se non riesce a verificare il reclamo su alcuniche soddisfano il reclamo, posso ancora provarlo come euristico, purché non dichiari mai in modo inappropriato di aver verificato un falso reclamo. Su ogni dato, potrebbe funzionare o potrebbe non funzionare; se non funziona, non sto peggio di dove ho iniziato.)
first-order-logic
tag sia giustificato. La domanda riguarda le formule booleane quantificate.