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