Saya seorang mahasiswa pascasarjana dalam matematika dengan latar belakang yang kuat dalam logika. Saya telah mengambil kursus pascasarjana selama setahun di bidang logika bersama-sama dengan program pascasarjana tentang teori model terbatas dan satu lagi tentang teori memaksa dan menetapkan. Sebagian besar teks CS tampaknya hanya mengasumsikan latar belakang yang sangat sederhana dalam logika, yang sebagian besar mencakup dasar-dasar logika proposisional dan logika tingkat pertama.
Saya ingin mendapatkan beberapa petunjuk tentang ke mana harus pergi untuk aplikasi CS di mana bahan yang lebih berat dari logika digunakan. Salah satu minat saya adalah teori tipe dan metode formal secara umum. Adakah yang bisa menyarankan beberapa bacaan bagus melewati buku-buku pengantar tentang pengecekan model dan bahasa pemrograman?
Jawaban:
Saya meninjau secara singkat beberapa area di sini, mencoba untuk fokus pada ide-ide yang akan menarik bagi seseorang dengan latar belakang logika matematika tingkat lanjut.
Teori Model Hingga
Pembatasan paling sederhana dari teori model klasik dari sudut pandang ilmu komputer adalah mempelajari struktur di atas alam semesta yang terbatas. Struktur ini terjadi dalam bentuk basis data relasional, grafik, dan objek kombinatorial lainnya yang muncul di mana-mana dalam ilmu komputer. Pengamatan pertama adalah bahwa beberapa teorema dasar teori model orde pertama gagal ketika dibatasi untuk model terbatas. Ini termasuk teorema kekompakan, teorema kelengkapan Godel, dan konstruksi ultraproduk. Trakhtenbrot menunjukkan bahwa tidak seperti logika orde pertama klasik, kepuasan atas model terbatas tidak dapat diputuskan.
Alat mendasar di area ini adalah lokalitas Hanf, lokalitas Gaifman, dan berbagai variasi pada game Ehrenfeucht-Fraisse. Topik yang dipelajari meliputi logika infinitary, logika penghitungan, logika titik tetap, dll. Selalu dengan fokus pada model yang terbatas. Ada pekerjaan yang berfokus pada ekspresivitas dalam fragmen variabel terbatas dari logika tingkat pertama dan logika ini memiliki karakterisasi melalui permainan kerikil. Arahan lain dari penyelidikan adalah untuk mengidentifikasi sifat-sifat logika klasik yang selamat dari pembatasan model terbatas. Hasil baru-baru ini ke arah itu dari Rossman menunjukkan bahwa teorema pelestarian homomorfisme tertentu masih memegang model yang terbatas.
Proposisional -kalkulusμ
Garis kerja dari akhir 60-an menunjukkan bahwa banyak sifat program dapat diekspresikan dalam ekstensi dari logika proposisional yang mendukung alasan tentang titik tetap. Modalus kalkulus adalah salah satu logika yang dikembangkan pada periode ini yang telah menemukan berbagai aplikasi dalam metode formal otomatis. Banyak metode formal terhubung ke logika temporal, atau logika gaya-Hoare dan banyak dari ini dapat dilihat dari segi μ -kalkulus. Bahkan, saya telah mendengarnya mengatakan bahwa μ- calculus adalah bahasa assembly dari logika temporal.μ μ μ
Dalam makalahnya yang memperkenalkan -calculus, Kozen memberikan aksioma dan hanya membuktikannya terdengar dan lengkap untuk fragmen logika yang terbatas. Bukti kelengkapan adalah salah satu masalah terbuka besar dalam ilmu komputer logis sampai Walukiewicz memberikan bukti (berdasarkan automata tak terbatas). Teori model μ- kalkulus memiliki banyak hasil yang kaya. Mirip dengan teorema van Benthem untuk logika modal, Janin dan Walukiewicz membuktikan bahwa μ- kalkulus secara ekuivalen dengan fragmen invarian bisimulasi dari logika urutan kedua monadik. The μμ μ μ μ -kalkulus juga telah ditandai dalam hal permainan paritas dan automata atas pohon tak terbatas. Masalah kepuasan untuk logika ini adalah EXPTIME lengkap dan Emerson dan Jutla menunjukkan bahwa logika memiliki properti model kecil. Bradfield menunjukkan bahwa hierarki pergantian -kalkulus adalah ketat, sementara Berwanger menunjukkan bahwa hierarki variabel juga ketat. Alat klasik penting yang digunakan dalam bidang ini adalah teorema Rabin dan teorema determinasi Martin.μ
Logika Temporal Linier
Logika temporal linier diadopsi dari logika filosofis ke dalam ilmu komputer untuk alasan tentang perilaku program komputer. Itu dianggap logika yang baik karena bisa mengekspresikan properti seperti invarian (tidak adanya kesalahan) dan pemutusan. Teori pembuktian logika temporal dikembangkan oleh Manna dan Pnueli (dan lainnya, kemudian) dalam artikel dan buku mereka. Pengecekan model dan masalah kepuasan untuk LTL keduanya dapat diselesaikan dalam hal automata dibandingkan kata-kata yang tak terbatas.
Pnueli juga membuktikan resuls mendasar tentang LTL dalam makalah aslinya yang memperkenalkan logika untuk alasan tentang program. Vardi dan Wolper memberikan kompilasi formula LTL yang jauh lebih sederhana ke dalam Buchi automata. Koneksi ke logika temporal telah menyebabkan studi yang intens dari algoritma untuk secara efisien memperoleh automata dari LTL, dan untuk penentuan dan pelengkap Buchi automata. Teorema Kamp menunjukkan bahwa LTL dengan modalitas karena secara dan sampai eksplisit setara dengan logika orde pertama monadik dengan relasi urutan. Ada pekerjaan yang sedang berlangsung memperluas hasil ini ke logika atas pesanan linier yang padat dan interval waktu. Etessami dan Wilke mengembangkan variasi game Ehrenfeucht-Fraisse untuk LTL dan menggunakannya untuk menunjukkan bahwa hierarki sampai ketat. Lini pekerjaan lain adalah memperluas LTL untuk menyatakan sewenang-wenangω μ μ
Logika Komputasi-Pohon
Masalah pengecekan model untuk CTL pada struktur hingga adalah dalam waktu polinomial. Masalah pengecekan model untuk CTL * selesai EXPTIME. Aksiomaasi CTL * adalah masalah terbuka yang menantang yang akhirnya diselesaikan oleh Reynolds 2001. Analog dari teorema van Benthem untuk logika modal dan teorema Kamp untuk LTL diberikan untuk CTL * oleh teorema Hafer dan Thomas yang menunjukkan bahwa CTL * sesuai dengan sebuah fragmen logika urutan kedua monadik di atas pohon biner. Karakterisasi selanjutnya oleh Hirschfeld dan Rabinovich adalah bahwa CTL * secara ekuivalen dengan fragmen MSO dengan bisimulasi-invarian dengan kuantifikasi jalur.
Bahasa Kata Tak Terbatas
Automata pada Kata Tak Terbatas
Di mana ada bahasa, ilmuwan komputer akan memiliki automata. Masukkan teori automata melalui kata-kata tak terbatas dan pohon tak terbatas. Sangat menyedihkan bahwa walaupun automata atas kata-kata tak terbatas muncul dalam dua tahun automata pada kata-kata yang terbatas, topik mendasar ini jarang dicakup dalam kurikulum ilmu komputer standar. Automata atas kata-kata dan pohon yang tak terbatas memberikan pendekatan yang sangat kuat untuk membuktikan kepastian kepuasan bagi keluarga logika yang sangat kaya.
Game Tanpa Batas
Permainan logis dan tak terbatas adalah bidang penelitian aktif. Teori-teori permainan muncul dalam ilmu komputer di semua tempat dalam dualitas antara non-determinisme dan paralelisme (pergantian), program dan lingkungannya, kuantifikasi universal dan eksistensial, modalitas kotak dan berlian, dll. Permainan ternyata menjadi cara yang bagus untuk mempelajari properti dari berbagai jenis logika non-klasik yang tercantum di atas.
Seperti halnya kriteria penerimaan untuk automata, kami memiliki kondisi kemenangan yang berbeda untuk permainan dan banyak yang dapat ditunjukkan setara. Karena Anda bertanya tentang hasil klasik, teorema Borel Determinacy dan Gale-Stewart sering terletak secara diam-diam di latar belakang beberapa model permainan yang kami pelajari. Salah satu pertanyaan mendesak dari zaman kita adalah tentang kompleksitas menyelesaikan permainan paritas. Jurdzinski memberikan algoritma peningkatan strategi dan menunjukkan bahwa menentukan pemenang ada di persimpangan kelas kompleksitas UP dan coUP. Kompleksitas yang tepat dari algoritma Jurdzinski terbuka sampai Friedmann memberikannya batas bawah eksponensial pada tahun 2009.
sumber
Edmund M. Clarke, Orna Grumberg, Doron A. Peled: Memeriksa Model . MIT Press 1999, adalah buku yang bagus (untuk saya) tentang pengecekan model.
Glynn Winskel: Semantik Resmi Bahasa Pemrograman: pengantar . MIT Press 1994, adalah salah satu buku teks standar tentang bahasa pemrograman.
Mordechai Ben-Ari: Logika matematika untuk ilmu komputer . Springer 2001, mungkin itu yang Anda cari.
sumber
Teori basis data adalah bidang yang luas yang menyediakan banyak aplikasi logika. Kompleksitas deskriptif dan teori model hingga adalah bidang yang terkait erat. Sejauh yang saya tahu, semua bidang ini cenderung menggunakan gaya logika aljabar (mengikuti jejak Birkhoff dan Tarski) daripada teori bukti. Namun, beberapa karya Peter Buneman , Leonid Libkin , Wenfei Fan , Susan Davidson , Limsoon Wong , Atsushi Ohori , dan peneliti lain yang bekerja di UPenn pada 1980-an, 90-an, memang berupaya menyatukan teori dan database bahasa pemrograman. Ini tampaknya membutuhkan kenyamanan dengan kedua gaya logika. Hal yang sama berlaku untuk pekerjaan yang lebih baru oleh James Cheney dan Philip Wadler .
Dalam hal referensi spesifik, buku teks standar tersedia online untuk referensi yang mudah:
Sayangnya saya tidak tahu buku teks atau survei umum terkini yang mencakup bidang yang bergerak cepat ini. Saya telah menemukan dua survei yang lebih tua berguna. Pertama,
menunjukkan cara menghubungkan titik-titik antara Tarski dan subbidang tertentu, basis data pembatas. Kedua,
pitches (1996-style) teori database untuk teori model hingga, dan dalam proses menyoroti banyak aplikasi logika yang menarik dalam database. Untuk pekerjaan yang lebih baru (seperti teori XML, sumber, model streaming, atau basis data grafik) membaca makalah penelitian yang sangat dikutip adalah pendekatan yang masuk akal.
sumber
Michael Huth dan Mark Ryan: Logika dalam ilmu komputer , Cambridge University Press, 2004.
Saya sangat merekomendasikan buku ini sebagai pengantar umum tentang bagaimana logika berperan dalam ilmu komputer.
sumber
Penggunaan utama logika dalam CS adalah logika program, juga disebut logika Hoare.
Situasi serupa diperoleh dalam studi logika modal yang (menyederhanakan sedikit lagi) tidak seekspresi logika urutan pertama, tetapi apa yang bisa mereka ungkapkan, mereka ekspresikan dengan formula dan bukti yang lebih pendek.
Mengidentifikasi fragmen yang sesuai dari ZFC tidak sulit untuk bahasa pemrograman sederhana, tetapi menjadi lebih cepat menantang karena bahasa pemrograman memperoleh lebih banyak fitur. Beberapa tahun terakhir telah melihat kemajuan besar dalam upaya ini.
Makalah Dasar Aksiomatik untuk Pemrograman Komputer oleh T. Hoare sering dianggap sebagai studi yang mempelajari logika program dengan sungguh-sungguh, mudah dibaca, dan mungkin cara yang baik untuk mulai menjelajah ke lapangan. Logika yang sama dipelajari secara lebih rinci dalam buku Winskel "Formal Semantics of Programming Languages" yang disebutkan oleh @vb le.
Teori tipe dapat dilihat dalam cahaya yang serupa. Titik penjualan utama dari tipe-teori adalah identifikasi bukti dengan program (murni fungsional), yang mengarah ke konsep ekonomi yang hebat dan otomatisasi yang kuat (dalam bentuk inferensi tipe dan pembuktian teorema interaktif). Harga untuk teori jenis menjadi cara yang elegan untuk mengorganisir bukti adalah bahwa itu tampaknya tidak bekerja dengan baik dengan bahasa pemrograman yang tidak murni fungsional.
Teks modern dan menyeluruh yang memperkenalkan logika program dengan cara berteori tipe-teoretis adalah Software Foundations oleh Pierce et al. Ini akan membawa Anda tepat di dekat (a) penelitian terdepan dalam verifikasi program dan, sebagai buku teks, mungkin memberikan sekilas tentang bagaimana ilmu komputer dan matematika akan diajarkan di masa depan.
Setelah logika program dikembangkan untuk suatu bahasa, langkah selanjutnya adalah otomatisasi, atau otomatisasi parsial: membuat bukti untuk program non-sepele adalah padat karya, dan kami ingin mesin melakukan sebanyak mungkin dari itu. Banyak penelitian saat ini dalam metode formal yang harus dilakukan dengan otomatisasi tersebut.
sumber
Ada tradisi logika yang sangat kuat dalam ilmu komputer. Masalah yang kita pelajari dan estetika komunitas logika komputasi tidak identik dengan komunitas logika matematika. Anda benar bahwa perkembangan signifikan dalam teori model, meta-teori logika orde pertama dan teori himpunan tidak umum digunakan dalam logika komputasi. Seseorang dapat dengan sukses meneliti log komputasi tanpa melihat atau menggunakan ultrafilters, analisis non-standar, pemaksaan, teorema Paris-Harrington, dan sejumlah konsep menarik lainnya yang dianggap penting dalam logika klasik.
Sama seperti seseorang menerapkan ide-ide matematika untuk mempelajari logika serta ide-ide logis untuk mempelajari matematika, kami menerapkan logika untuk mempelajari ilmu komputer dan juga menerapkan perspektif komputasi untuk mempelajari logika. Fokus yang berbeda ini memiliki konsekuensi yang agak dramatis untuk jenis hasil yang penting bagi kami.
Berikut ini kutipan dari John Baez tentang logika dan ilmu komputer. Saya tidak memiliki pandangan yang persis sama karena saya tidak terlalu terbiasa dengan logika matematika tingkat lanjut.
Logika dalam ilmu komputer adalah bidang yang luas dan berkembang pesat. Saya menemukan bahwa setiap perspektif logika klasik dapat dimodifikasi untuk mendapatkan beberapa perspektif pada logika komputasi. Entri Wikipedia tentang logika matematika membagi bidang menjadi teori himpunan, teori model, teori bukti dan teori rekursi. Anda dapat secara esensial mengambil area-area ini dan menambahkan rasa komputasi ke dalamnya dan memperoleh sub-bidang logika komputasi.
Model Theory Kami suka mempelajari teori model logika non-klasik dan model non-klasik dari logika klasik. Maksud saya, kita mempelajari modal, temporal dan logika sub-struktural, dan bahwa kita mempelajari logika di atas pohon, kata-kata, dan model terbatas, sebagai lawan dari model klasik seperti aljabar. Dua masalah mendasar adalah kepuasan dan pengecekan model. Keduanya memiliki signifikansi praktis dan teoritis yang sangat besar. Sebaliknya, masalah-masalah ini kurang penting dalam logika klasik.
Teori bukti Kami mempelajari kompleksitas dan efisiensi yang dengannya kami dapat menghasilkan bukti dalam sistem bukti klasik, serta mengembangkan sistem bukti non-klasik baru yang sensitif terhadap pertimbangan kompleksitas dan efisiensi. Pengurangan otomatis mempelajari generasi bukti yang didukung mesin, berbicara luas. Prosesnya mungkin melibatkan interaksi manusia atau sepenuhnya otomatis. Ada banyak pekerjaan dalam mengembangkan prosedur keputusan untuk teori-teori logis. Kompleksitas bukti berfokus pada ukuran bukti dan kompleksitas komputasi untuk menghasilkan bukti. Ada garis pekerjaan yang menarik terkait program untuk bukti, yang menggabungkan dengan pekerjaan turun dari logika linier untuk mengembangkan sistem bukti, dan akibatnya bahasa pemrograman, yang peka terhadap sumber daya.
Teori rekursi Teori rekursi kami adalah teori kompleksitas. Daripada mempelajari apa yang dapat dihitung, kita mempelajari seberapa efisien kita dapat menghitung. Ada banyak analogi teori rekursi dalam teori kompleksitas, tetapi hasil dan pemisahan teori rekursi tidak selalu berlaku untuk analogi teoretis kompleksitas mereka. Alih-alih set yang dapat dihitung dan hierarki aritmatika, kami memiliki waktu polinomial, hierarki waktu polinomial, dan ruang polinomial yang melampirkan hierarki. Alih-alih kuantifikasi terbatas dalam hierarki aritmatika, kami memiliki kepuasan dan rumus Boolean yang terukur serta kuantifikasi terbatas dari rumus Boolean.
Artikel survei
adalah titik awal yang baik untuk mendapatkan pandangan logika komputasi yang sangat tinggi. Saya akan membuat daftar beberapa bidang ilmu komputer yang berorientasi logis. Saya berharap orang lain akan mengedit jawaban ini dan menambah daftar itu di sini, dan mungkin menambahkan tautan ke jawaban di halaman ini.
sumber
area tumpang tindih yang kuat antara logika dan ilmu komputer membuktikan teorema otomatis , misalnya [4]. juga misalnya ref [1] adalah penggunaan teorema Boyer-Moore untuk memeriksa / memverifikasi teorema Godels. Hasil utama / mengesankan lainnya adalah penyelesaian perangkat lunak baru-baru ini dari teorema empat warna (dan yang lainnya seperti Odd Order dan Feit-Thompson [3]) pada penelitian Microsoft oleh Gonthier. [2]
[1] Metamathematika, Mesin, dan Bukti Gödel (Traktat Cambridge dalam Ilmu Komputer Teoretis oleh Shankar
[2] Bukti yang diperiksa di komputer dari Four Color Theorem Georges Gonthier
[3] Algoritma yang menarik dalam formalisasi teorema Feit-Thompson? tcs.se
[4] Di mana dan bagaimana komputer membantu membuktikan teorema? tcs.se
sumber