Saya percaya akan bermanfaat bagi Anda untuk mencari teori interpretasi abstrak, yang memberikan jawaban yang sangat teliti untuk pertanyaan serupa di bidang analisis program berbasis kisi yang sedikit berbeda.
Tampak bagi saya bahwa Anda menggunakan kerangka kerja berdasarkan aljabar. Saya menggunakan kata aljabar di sini dalam arti aljabar universal, di mana saya berasumsi bahwa kendala pada struktur aljabar diberikan oleh persamaan antara istilah. Ada dua pengertian berbeda di mana abstraksi (atau hierarki) masuk ke dalam gambar.
- Abstraksi sebagai hubungan antara dua aljabar spesifik. Anda mungkin ingin mengatakan bahwa satu aljabar memiliki struktur yang lebih kaya daripada aljabar lain, atau bahwa setiap masalah yang Anda bisa selesaikan dengan satu aljabar yang bisa Anda selesaikan dengan yang lain. Jenis hubungan ini adalah apa yang akan diformalkan dengan homomorfisme, atau pemetaan lain antara aljabar.
- Hirarki abstraksi sebagai keluarga aljabar. Dalam kasus Anda, ini akan menjadi keluarga deltoid dengan properti tertentu. Sebagai contoh yang lebih umum, pertimbangkan semua set yang dipesan sebagian. Kita dapat menganggap kisi, kisi distributif, dan kisi Boolean sebagai urutan sub-keluarga yang memiliki sifat lebih kaya.
Kedua pengertian itu saling terkait tetapi berbeda.
Abstraksi antara dua struktur
Wawasan dari interpretasi abstrak adalah berguna untuk memberikan struktur yang Anda pertimbangkan dengan gagasan keteraturan. Pertimbangkan dua struktur
(M,fM) dan (N,fN), dengan fM:M→M dan fN:N→N sebagai operasi yang menarik.
Homomorfisme dalam pengertian aljabar universal akan terlihat seperti ini:
h:M→N adalah fungsi yang memuaskan kesetaraan h(fM(a))=fN(h(a)).
Kita dapat melihat dua struktur yang muncul di atas sebagai struktur yang dipesan sebelumnya
(M,=,fM) dan (N,=,fN)
dan homomorfisme yang dapat kita tulis ulang menjadi fungsi yang memuaskan
- jika itu a=b kemudian h(a)=h(b), dan
- untuk semua a di M, h(fM(a))=fN(h(a)).
Sekarang, anggaplah Anda memiliki gagasan perkiraan lain yang masuk akal. Misalnya, ketika kita berurusan dengan set negara dalam verifikasi program, inklusi subset masuk akal untuk aplikasi tertentu, atau ketika berhadapan dengan rumus dalam deduksi otomatis, implikasinya masuk akal. Lebih umum, kita dapat mempertimbangkan
( M., ⪯ ,fM.) dan ( N, ⊑ ,fN)dimana ⪯ dan ⊑ adalah preorder.
Sekarang, alih-alih homomorfisme, kita dapat memiliki fungsi abstraksi
α:M→N yang mana
- monoton, artinya setiap kali a⪯b kita punya α(a)⊑α(b), dan
- semi-bolak-balik dengan operasi: α(fM(a))⊑fN(α(a)) untuk semua a di M.
Fungsi abstraksi memperjelas gagasan bahwa jika struktur selesai N adalah abstraksi dari struktur atas M, lalu mengevaluasi istilah dalam N tidak dapat menghasilkan hasil yang lebih tepat (sehubungan dengan gagasan aproksimasi di N) daripada mengevaluasi istilah yang sama di M dan kemudian memetakannya ke N.
Sekarang kita dapat bertanya apakah perlu untuk mendekati masalah dalam hal abstraksi sebagai lawan perbaikan. Artinya, tidak bisakah kita mengatakan ituM adalah penyempurnaan dari Ndan merumuskan kondisi dalam istilah. Inilah yang dilakukan fungsi konkretisasi .
Sebuah fungsi betonisasi γ:N→Madalah monoton dan memuaskan ketidaksetaraanfM.( γ( b ) ) ⪯ γ(fN( b ) ).
Kondisi abstraksi dan konkretisasi disebut kondisi kesehatan dalam interpretasi abstrak. Dalam kasus khusus ituα dan γmembentuk koneksi Galois, kondisi abstraksi dan konkretisasi adalah setara. Secara umum, mereka tidak setara.
Segala sesuatu yang telah kita lakukan sejauh ini hanya meresmikan gagasan abstraksi antara sepasang struktur. Hal-hal yang telah saya katakan dapat diringkas jauh lebih ringkas dalam bahasa teori kategori. Saya telah menghindari kategori karena komentar Anda di atas.
Hirarki Abstraksi
Misalkan kita memiliki struktur Mdiberkahi dengan preorder dan beberapa operasi. Kita dapat mempertimbangkan semua strukturN seperti yang N adalah abstraksi dari Mdalam pengertian di atas. Jika kita memilikinyaN1 adalah abstraksi dari N2 dan keduanya adalah abstraksi dari M, kami memiliki tiga elemen hierarki. Relasi `adalah abstraksi dari ' memungkinkan kita untuk menentukan preorder antar struktur. Mari kita sebut keluarga struktur yang diperintahkan oleh abstraksi sebagai hierarki .
Jika saya mempertimbangkan contoh Anda, tampaknya deltoid abstrak Anda mungkin merupakan kandidat untuk elemen maksimal dalam beberapa hierarki. Saya tidak sepenuhnya yakin karena deltoid abstrak tampaknya merupakan keluarga deltoids daripada deltoid spesifik.
Yang dapat Anda lakukan sekarang adalah mempertimbangkan hierarki yang berbeda. Hirarki semua deltoids. Sub-hierarki berdasarkan berbagai pertimbangan yang Anda miliki di atas. Contoh khusus dalam konteks interpretasi abstrak adalah hierarki kisi lengkap yang berada dalam koneksi Galois dengan kisi set kekuasaan tertentu, dan sub hierarki yang hanya terdiri dari kisi distributif atau hanya kisi Boolean.
Seperti yang ditunjukkan Martin Berger dalam komentar, gagasan abstraksi antara hierarki ini ditangkap oleh anggapan tambahan antar kategori.
Perspektif Kategorikal
Ada komentar yang meminta lebih banyak komentar pada kategori. Komentar itu sudah tidak ada lagi tetapi saya tetap akan merespons.
Mari kita mundur dan melihat apa yang Anda lakukan dalam mendesain deltoids dan apa yang telah saya jelaskan di atas dari perspektif yang lebih umum. Kami tertarik untuk memahami struktur penting dari entitas yang kami manipulasi dalam konteks perangkat lunak dan hubungan antara entitas-entitas ini.
Realisasi penting pertama adalah bahwa kita tidak hanya tertarik pada serangkaian elemen tetapi pada operasi yang dapat kita lakukan pada elemen-elemen dan sifat-sifat dari operasi tersebut. Intuisi ini mendorong desain kelas dalam pemrograman berorientasi objek dan definisi struktur aljabar. Anda telah membuat intuisi ini secara eksplisit dalam definisi deltoid yang telah mengidentifikasi beberapa operasi yang menarik. Lebih umum, ini adalah proses pemikiran yang mendasari deskripsi aljabar. Kita perlu mengidentifikasi apa operasi kita dan properti apa yang mereka miliki. Langkah ini memberi tahu kami tipe struktur yang sedang kami kerjakan.
Realisasi kedua adalah bahwa kita tidak hanya tertarik pada serangkaian elemen tetapi hubungan abstraksi. Formalisasi yang paling sederhana yang dapat saya bayangkan tentang abstraksi adalah dengan mempertimbangkan seperangkat preordered. Kita dapat menganggap suatu himpunan preordered sebagai generalisasi yang ketat dari himpunan ke sesuatu yang datang dengan gagasan perkiraan yang dipanggang.
Kami idealnya ingin bekerja di lingkungan di mana kedua wawasan di atas adalah warga negara kelas satu. Artinya, kami ingin pengaturan yang diketik seperti aljabar, tetapi juga pengaturan perkiraan perkiraan preorder. Langkah pertama ke arah ini adalah mempertimbangkan kisi. Kisi adalah struktur yang menarik secara konseptual karena kita dapat mendefinisikannya dalam dua cara yang setara.
- Kita dapat mendefinisikan kisi secara adil sebagai himpunan (L,⊓,⊔)dilengkapi dengan pertemuan dan operasi gabungan. Kita kemudian bisa menurunkannya urutan parsial dengan mendefinisikana⊑b untuk memegang kapan saja a⊓b=a.
- Alternatifnya adalah mendefinisikan kisi sebagai set yang dipesan sebagian (L,⊑) memuaskan bahwa setiap pasangan elemen dalam Lmemiliki batas bawah unik terbesar dan batas atas paling tidak unik. Kami kemudian dapat memperoleh pertemuan dan bergabung dengan operasi dari urutan parsial.
Kisi dengan demikian adalah struktur matematika yang dapat didekati dari perspektif aljabar atau pendekatan. Kelemahan di sini adalah bahwa elemen-elemen kisi itu sendiri tidak memiliki struktur tipe yang diperhitungkan dalam hubungan aproksimasi. Artinya, kita tidak dapat membandingkan elemen berdasarkan gagasan memiliki struktur lebih atau kurang.
Dalam konteks masalah Anda, Anda dapat menganggap kategori sebagai generalisasi alami preorder yang menangkap gagasan perkiraan (dalam morfisme) dan tipe struktur dalam pengaturan aljabar. Pengaturan teori kategori memungkinkan kita untuk membuang berbagai perbedaan yang tidak perlu dan fokus pada struktur entitas yang Anda pedulikan dan perkiraan struktur itu. Properti dan tambahan universal memberi Anda kosa kata dan alat yang sangat kuat untuk memahami lanskap struktur yang Anda minati dan memungkinkan perlakuan matematis yang ketat terhadap gagasan intuitif bahkan seperti tingkat abstraksi yang berbeda.
Mengenai komentar saya tentang abstrak deltoids, tampaknya apa yang Anda inginkan adalah kategori. Deltoid abstrak adalah kategori spesifik analog dengan kategori set. Ada kategori lain yang sedang Anda pertimbangkan. Awalnya saya pikir Anda mendefinisikan deltoid yang dalam arti teori kategori akan menjadi objek terminal (atau final).
Anda sedang mempelajari jenis pertanyaan yang diberikan oleh teori kategori untuk jawaban yang sangat memuaskan. Saya harap Anda bisa sampai pada kesimpulan itu sendiri.
Referensi
- Interpretasi abstrak dan aplikasi untuk program logika , Patrick Cousot dan Radhia Cousot. Paruh pertama artikel ini adalah pengantar gaya tutorial umum untuk topik interpretasi abstrak.
- Kerangka kerja interpretasi abstrak , Patrick Cousot dan Radhia Cousot. Artikel ini membahas semua kemungkinan yang saya buat di atas mengenai fungsi abstraksi dan konkretisasi dengan sangat terperinci.
- Desain sistematis Kerangka Analisis Program , Patrick Cousot dan Radhia Cousot. Ini adalah makalah yang memperkenalkan gagasan hierarki abstraksi dalam konteks analisis program.
- Pelestarian Kuat Umum dengan Interpretasi Abstrak , Francesco Ranzato dan Francesco Tapparo. Makalah ini menerapkan ide-ide ini dalam konteks abstraksi yang berbeda yang mempertahankan formula logika temporal. Anda akan menemukan contoh abstraksi Boolean dan distribusi yang berhasil di sini.
- Abstrak Interpretasi, Hubungan Logis, dan Ekstensi Kan , Samson Abramsky. Menyajikan perspektif teori kategori pada orde teoritis materi di atas.