Pertama, sebuah komentar. Jenis pertanyaan Anda tergantung pada seberapa geometris maksud Anda kata "metrik". Sangat umum untuk menggunakan ultrametrik dalam semantik dan analisis statis, tetapi ultrametrik cenderung memiliki kombinatorial daripada interpretasi geometris. (Ini adalah varian dari pengamatan bahwa teori domain memiliki aroma topologi kombinatorial daripada penggunaan geometris.)
Yang mengatakan, saya akan memberi Anda contoh bagaimana ini muncul dalam bukti program. Pertama, ingatlah bahwa dalam bukti program, kami ingin menunjukkan bahwa formula yang menggambarkan suatu program berlaku. Secara umum, formula ini tidak harus ditafsirkan dengan boolean, tetapi dapat diambil dari unsur-unsur beberapa kisi nilai kebenaran. Maka formula yang benar adalah hanya satu yang sama dengan bagian atas kisi.
Lebih jauh lagi, ketika menentukan program referensi diri sangat (misalnya, program yang menggunakan kode modifikasi diri sendiri) masalah bisa menjadi sangat sulit. Kami biasanya ingin memberikan spesifikasi program yang rekursif, tetapi mungkin tidak ada struktur induktif yang jelas untuk menggantung definisi. Untuk mengatasi masalah ini, seringkali membantu untuk melengkapi kisi nilai kebenaran dengan struktur metrik tambahan. Kemudian, jika Anda dapat menunjukkan bahwa predikat titik tetap yang Anda inginkan benar-benar kontraktual, Anda dapat mengajukan banding ke teorema titik tetap Banach untuk menyimpulkan bahwa predikat rekursif yang Anda inginkan didefinisikan dengan baik.
Kasing yang paling saya kenal disebut "step-indexing". Dalam pengaturan ini, kami menganggap kisi kami nilai kebenaran menjadi himpunan bagian tertutup , yang elemen-elemennya dapat dengan bebas kita interpretasikan sebagai "panjangnya urutan evaluasi yang dimiliki oleh properti". Bertemu dan bergabung adalah persimpangan dan serikat pekerja, seperti biasa, dan karena kisi telah selesai kita dapat mendefinisikan implikasi Heyting juga. Kisi juga dapat dilengkapi dengan ultrametrik dengan membiarkan jarak antara dua elemen kisi menjadi , di mana adalah elemen terkecil dalam satu set tetapi tidak yang lain.N 2 - n nΩN2−nn
Kemudian, peta kontraksi Banach yang memberi tahu kita bahwa predikat kontraktual memiliki titik tetap yang unik. Secara intuitif, ini mengatakan bahwa jika kita dapat mendefinisikan predikat yang berlaku untuk langkah-langkah n + 1 menggunakan versi yang berlaku untuk langkah-langkah n , maka kita benar-benar memiliki definisi predikat yang jelas. Jika kita kemudian menunjukkan bahwa predikat sama dengan ⊤ = N , maka kita tahu bahwa predikat selalu berlaku untuk program.p:Ω→Ωn+1n⊤=N
Sebagai alternatif dari CPO yang lebih umum digunakan, Arnold dan Nivat menjelajahi ruang metrik sebagai domain semantik denotasional [1]. Dalam tesisnya, Bonsangue [2] mengeksplorasi dualitas antara semantik denotasional dan semantik aksiomatik. Saya menyebutkannya di sini karena memberikan gambaran keseluruhan yang sangat komprehensif.
[1]: A Arnold, M Nivat: Interpretasi Metrik Pohon Tak Terbatas dan Semantik dari Program Rekursif non Deterministik. Teor Comput. Sci. 11: 181-205 (1980).
[2]: MM Dualitas Topologi Bonsangue dalam Semantik volume 8 ENTCS, Elsevier 1998.
sumber
Ini satu (dari, kebetulan, bagian atas antrian bacaan saya):
Swarat Chaudhuri, Sumit Gulwani dan Roberto Lublinerman. Analisis Kontinuitas Program. POPL 2010.
Para penulis memberikan semantik denotasional untuk bahasa imperatif dengan loop sederhana, menafsirkan ekspresi sebagai fungsi dari nilai-nilai dalam ruang metrik produk yang mendasarinya. Intinya adalah untuk menentukan program mana yang mewakili fungsi kontinu, bahkan di hadapan "jika" dan loop. Mereka bahkan membiarkan pertanyaan tentang kontinuitas terbatas pada input dan output tertentu. (Ini penting untuk menganalisis algoritma Dijkstra, yang kontinu dalam panjang lintasannya, tetapi tidak pada lintasan yang sebenarnya.)
Saya belum melihat apa pun yang membutuhkan ruang metrik - sepertinya itu bisa dilakukan dengan menggunakan topologi umum sejauh ini - tapi saya hanya di halaman 3. :)
sumber
Permintaan maaf karena menambahkan jawaban lain, tetapi jawaban ini tidak terkait dengan jawaban saya yang lain di atas.
Ruang metrik yang saya gunakan secara rutin untuk mengganggu (atau mendidik?) Siswa konkurensi adalah jejak tak terbatas. Topologi yang diinduksi adalah tepat yang Alpern dan Schneider [1] digunakan untuk mengkarakterisasi sifat keselamatan dan liveness sebagai batas-tertutup dan padat, masing-masing.
σ| iσi2-∞=0
Dalam retrospeksi saya menyadari bahwa jawaban ini juga tidak memiliki bahan penting dari struktur kisi atau poset. Namun struktur kisi seperti itu hadir ketika bergerak satu tingkat ke atas yang oleh Clarkson dan Schneider disebut hyperproperties [2]. Pada saat penulisan ini tidak jelas bagi saya bagaimana cara mengangkat metrik.
[1] B Alpern dan FB Schneider. Menentukan gaya hidup. IPL, 21 (4): 181–185, 1985.
[2] MR Clarkson dan FB Schneider. Hyperproperties. CSF, p51-65, IEEE, 2008.
sumber