Apakah ada survei algoritma untuk menghitung interpolant? Bagaimana dengan makalah pada hanya satu algoritma? Kasus yang paling saya minati adalah dan , 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 A , 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.
Jawaban:
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 .
sumber
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:
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:
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:
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
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.
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).
Generasi Interpolant yang Efisien dalam Kepuasan Modulo Linear Integer Arithmetic , Alberto Griggio, Thi Thieu Hoa Le, dan Roberto Sebastiani. 2010
Metode Kombinasi untuk Menghasilkan Interpolant , Greta Yorsh dan Madanlal Musuvathi. 2005
Memperlihatkan cara menghasilkan interpolant dengan adanya kombinasi teori Nelson-Oppen.
Interpolasi dasar untuk teori kesetaraan , Alexander Fuchs, Amit Goel, Jim Grundy, Sava Krstic, Cesare Tinelli. 2011
Interpolasi Berbasis Instansiasi Lengkap , Nishant Totla dan Thomas Wies. 2012
Interpolant sebagai Classifier , Rahul Sharma, Aditya V. Nori, dan Alex Aiken, 2012.
sumber