Algoritma apa yang dikenal untuk menghitung interpolant Craig?

19

Apakah ada survei algoritma untuk menghitung interpolant? Bagaimana dengan makalah pada hanya satu algoritma? Kasus yang paling saya minati adalah A=¬pq dan C=q , ditambah kendala bahwa interpolant sekecil mungkin. (Saya tahu makalah McMillan dari 2005 , yang menjelaskan cara mendapatkan interpolant, sambil menghindari pembilang.)

Latar belakang: teorema interpolasi Craig (1957) mengatakan bahwa jika , di mana adalah rumus ( fol ) dalam dan adalah rumus , maka ada rumus sehingga dan . Formula adalah Craig interpolant dari dan (atau, dalam definisi alternatif, dari dan ). Interpolant sepele dari dan adalahA T A C T C B T A A B T C B C B ATSEBUAHTCSEBUAHCSEBUAHTSEBUAHCTCBTSEBUAHSEBUAHBTCBCBSEBUAHCSEBUAH¬C¬halqqq , tapi saya ingin interpolant kecil , untuk beberapa definisi yang masuk akal 'kecil' (seperti ukuran sintaksis). (Interpolant memiliki banyak kegunaan dan, jika Anda penasaran, inilah salah satunya .)

Motivasi: Ini akan berguna dalam (sangat) verifikasi program tambahan melalui pembuatan kondisi verifikasi.

Radu GRIGore
sumber
Ada berbagai hasil tentang kompleksitas menemukan interpolant dari bukti yang diberikan dalam berbagai sistem bukti. Dalam beberapa sistem bukti lemah adalah mungkin untuk menemukan interpolant secara efisien (dan kemudian kita katakan sistem bukti memuaskan properti interpolasi yang layak) tetapi sistem yang lebih kuat tidak memiliki properti ini dengan asumsi hipotesis yang masuk akal dalam kripto. Aku pendek, algoritma untuk menemukan interpolant tergantung pada sistem bukti yang digunakan untuk menunjukkan . AC
Kaveh
Saya pasti melewatkan sesuatu. sepele interpolasi memiliki ukuran 1. Bagaimana bisa lebih kecil? q
Emil Jeřábek mendukung Monica
@ EmilJeřábek: dan q adalah meta-variabel, yang merupakan singkatan dari formula. Misalnya, Anda dapat memiliki p ( ( x = 1 ) p r i m e ( x ) ) dan q ( ( x = 1 ) o d d ( x ) ) , dalam hal ini f a l s e adalah interpolant yang baik dari ¬ p qpqp((x=1)prime(x))q((x=1)odd(x))false¬pqdan , karena ¬ p q tidak memuaskan. Dalam aplikasi saya, p adalah kondisi verifikasi lama , dan q adalah kondisi verifikasi yang diperoleh setelah program sedikit diedit. q¬pqpq
Radu GRIGore
Saya melihat. Saya cukup bingung dengan notasinya. Apakah ada alasan mengapa huruf kecil, dan huruf besar A , B , C ? hal,qSEBUAH,B,C
Emil Jeřábek mendukung Monica

Jawaban:

16

Lihatlah tesis Phd Himanshu Jain , Verifikasi Menggunakan Pemeriksaan Kepuasan, Predikat Abstraksi, dan Craig Interpolasi . Dia mempertimbangkan kinerja beberapa teknik dasar dengan memperhatikan aplikasi dalam verifikasi, dan memiliki bab tentang interpolasi formula yang melibatkan persamaan linear dan Diophantine.

Dia mengambil pandangan khusus pada apa yang saya tahu sebagai metode koneksi Bibel, dan yang dia sebut General Matings. Ini adalah pendekatan berbasis grafik, bukan berbasis formula untuk mencapai kepuasan. Jika Anda tertarik pada mereka secara umum, izinkan saya merekomendasikan Bukti singkat (11 halaman) Dominic Hughes tanpa sintaks .

Charles Stewart
sumber
8

Menariknya ada hubungan antara cut-elimination dan teorema interpolasi. Pertama-tama teorema interpolasi tampak seperti kebalikan dari eliminasi aturan campuran yang digunakan selama eliminasi cut. Penghapusan ini mengatakan:

If G |- A and D, A |- B are cut-free proofs,  
then there is a cut-free proof G, D |- B

Sekarang satu bentuk teorema interpolasi berdasarkan bukti bebas-potong, dapat dilakukan sebagai berikut. Ini adalah versi eliminasi terbalik. Dimulai dengan G, D | - B dan memberikan G | - A dan D, A | - B:

If G; D |- B is a cut free proof,  
then there is a formula A (the interpolant) 
and cut free proofs G |- A and D, A |- B,  
and A uses only propositions simultaneously from G and D

Saya sengaja membuat tanda titik koma antara premis G dan D. Di sinilah kita menarik garis, premis yang ingin kita lihat sebagai memberikan interpolant, dan premis mana yang ingin kita lihat menggunakan interpolant.

Ketika input adalah bukti bebas-potong, upaya algroithm sebanding dengan jumlah node dari bukti bebas-potong. Jadi praktis metode linear dalam input. Dengan setiap langkah bukti dari bukti bebas-potong, algoritme mengumpulkan interpolant dengan memperkenalkan penghubung baru.

Pengamatan di atas berlaku untuk konstruksi interpolasi sederhana, di mana kita hanya mensyaratkan bahwa interpolant memiliki proposisi secara simultan dari G dan D. Interpolant dengan kondisi variabel memerlukan sedikit lebih banyak langkah, karena beberapa variabel hinding juga perlu dilakukan.

Mungkin ada hubungan antara minimalitas bukti bebas-potong dan ukuran interpolant. Tidak semua bukti bebas-potong minimal. Misalnya bukti seragam seringkali lebih pendek daripada bukti bebas-potong. Lemma untuk bukti seragam cukup sederhana, aplikasi aturan bentuk:

 G |- A       G, B |- C
 ----------------------
     G, A -> B |- C

Dapat dihindari, ketika B tidak digunakan dalam bukti C. Ketika B tidak digunakan dalam bukti C, kita sudah memiliki G | - C, dan dengan demikian dengan melemahkan G, A -> B | - C. Interpolasi Algoritma yang disebutkan di sini, tidak akan memperhatikan hal ini.

Salam Hormat

Referensi: Teorema Interpolasi Craig diformalkan dan dimekanisasi dalam Isabelle / HOL, Tom Ridge, University of Cambridge, 12 Jul 2006 http://arxiv.org/abs/cs/0607058v1

Refence di atas tidak persis menunjukkan interpolasi yang sama, karena menggunakan multi-set di bagian kesimpulan dari urutan. Juga tidak menggunakan implikasi. Tetapi ini menarik karena mendukung klaim kompleksitas saya, dan karena itu menunjukkan verifikasi mekanis.


sumber
Jan, Anda bisa menggunakan matematika ala LaTeX di cstheory.
Kaveh
8

Sudah lebih dari dua tahun sejak pertanyaan ini diajukan, tetapi pada saat itu, ada lebih banyak makalah yang diterbitkan tentang algoritma untuk menghitung interpolant Craig. Ini adalah area penelitian yang sangat aktif dan tidak layak untuk memberikan daftar komprehensif di sini. Saya memilih artikel yang agak sewenang-wenang di bawah ini. Saya akan menyarankan artikel berikut yang merujuk mereka dan membaca bagian pekerjaan terkait untuk mendapatkan gambaran yang jelas tentang lanskap.

  1. Generasi Interpolant yang Efisien dalam Teori Modulo Kepuasan, Alessandro Cimatti, Alberto Griggio, Roberto Sebastiani, ACM TOCL, 2010.

    Meliputi interpolasi untuk aritmatika rasional linier, logika perbedaan rasional dan integer, dan Unit Dua Variabel Per Ketimpangan logika (UTVPI).

  2. Generasi Interpolant yang Efisien dalam Kepuasan Modulo Linear Integer Arithmetic , Alberto Griggio, Thi Thieu Hoa Le, dan Roberto Sebastiani. 2010

  3. Metode Kombinasi untuk Menghasilkan Interpolant , Greta Yorsh dan Madanlal Musuvathi. 2005

    Memperlihatkan cara menghasilkan interpolant dengan adanya kombinasi teori Nelson-Oppen.

  4. Interpolasi dasar untuk teori kesetaraan , Alexander Fuchs, Amit Goel, Jim Grundy, Sava Krstic, Cesare Tinelli. 2011

  5. Interpolasi Berbasis Instansiasi Lengkap , Nishant Totla dan Thomas Wies. 2012

  6. Interpolant sebagai Classifier , Rahul Sharma, Aditya V. Nori, dan Alex Aiken, 2012.

Vijay D
sumber