Membiarkan dan menjadi -vektor variabel boolean. Saya memiliki predikat boolean di . Saya memberi teman saya Priscilla. Sebagai tanggapan, dia memberi saya, predikat boolean pada , dan dia mengklaim itu
atau dengan kata lain, itu
Saya ingin memverifikasi klaimnya entah bagaimana. Bagaimana Priscilla dapat membantu saya memverifikasi klaim ini?
Anda dapat mengasumsikan keduanya dan direpresentasikan sebagai formula CNF, dan itu tidak terlalu besar (ukuran polinomial, atau sesuatu).
Dalam dunia yang ideal, akan luar biasa jika saya bisa mengurangi masalah memverifikasi klaim ini ke SAT: Saya punya pemecah SAT, dan akan lebih bagus jika saya bisa menggunakan pemecah SAT untuk memverifikasi klaim ini. Namun, saya cukup yakin bahwa tidak mungkin memformulasikan masalah memverifikasi klaim ini secara langsung sebagai instance SAT; menguji validitas formula 2QBF hampir pasti lebih sulit daripada SAT. (Itu arah mudah dirumuskan sebagai instance SAT, tetapi arah sulit karena secara inheren melibatkan dua bilangan kuantifikasi.)
Tapi seandainya Priscilla bisa memberi saya beberapa bukti tambahan untuk mendukung klaimnya. Apakah ada beberapa bukti tambahan atau saksi yang bisa diberikan Priscilla kepada saya, yang akan memudahkan saya untuk memverifikasi klaimnya? Secara khusus, apakah ada beberapa bukti atau saksi tambahan yang bisa dia berikan kepada saya, yang akan memudahkan saya untuk merumuskan masalah memverifikasi klaimnya sebagai instance dari SAT (yang kemudian saya dapat menerapkan pemecah SAT saya)?
Salah satu aspek yang tidak biasa dari pengaturan saya adalah bahwa saya berasumsi (heuristik) bahwa saya memiliki oracle untuk SAT. Jika Anda menyukai teori kompleksitas, Anda dapat memikirkannya dengan cara ini: Saya mengambil peran mesin yang dapat menghitung banyak hal (yaitu di ), dan saya ingin memverifikasi klaim Priscilla menggunakan algoritme di . Terima kasih saya kepada MDX untuk cara berpikir tentang hal-hal ini.
Motivasi / aplikasi saya: Saya ingin melakukan verifikasi formal terhadap suatu sistem (mis., Pengecekan model simbolik), dan langkah kunci dalam penalaran melibatkan eliminasi quantifier (yaitu, mulai dari , dapatkan ). Saya berharap ada cara bersih untuk memverifikasi bahwa eliminasi quantifier dilakukan dengan benar.
Jika tidak ada solusi yang berfungsi untuk semua kemungkinan , jangan ragu untuk menyarankan solusi yang "suara tetapi tidak lengkap", yaitu teknik yang bagi banyak orang izinkan saya memverifikasi kesetaraan yang diklaim. (Bahkan jika gagal memverifikasi klaim pada beberapayang memenuhi klaim, saya masih dapat mencoba ini sebagai heuristik, asalkan tidak pernah secara tidak tepat mengklaim telah memverifikasi klaim palsu. Atas suatu pemberian, mungkin bekerja, atau mungkin tidak; jika tidak berhasil, saya tidak lebih buruk daripada di mana saya mulai.)
first-order-logic
tag tidak bisa dibenarkan. Pertanyaannya adalah semua tentang rumus boolean yang dikuantifikasi.