Kafes tabanlı program analizinin biraz farklı alanlarındaki benzer sorulara çok kapsamlı cevaplar veren soyut yorumlama teorisine bakmanızın yararlı olacağına inanıyorum.
Bana öyle geliyor ki cebir temelli bir çerçeve kullanıyorsunuz. Burada cebir kelimesini evrensel cebir anlamında kullanıyorum, burada cebirin yapısı üzerindeki kısıtlamaların terimler arasındaki eşitlikler tarafından verildiğini varsayıyorum. Soyutlamaların (veya hiyerarşilerin) resme girdiği iki farklı duyu vardır.
- İki özel cebir arasındaki ilişki olarak soyutlama.Bir cebirin bir başka cebire göre daha zengin bir yapıya sahip olduğunu ya da bir cebirle çözebileceğiniz her sorunun diğeri ile çözebileceğini söylemek isteyebilirsiniz. Bu tür bir ilişki, homomorfizmi satın almak veya cebirler arasında başka bir harita almak için resmileştirilecek olan ilişkidir.
- Cebir familyaları olarak soyutlama hiyerarşileri. Sizin durumunuzda, bunlar belirli özelliklere sahip deltoid aileleri olacaktır. Daha genel bir örnek olarak, kısmen sıralı tüm setleri düşünün. Kafesleri, dağıtıcı kafesleri ve Boole kafeslerini daha zengin özelliklere sahip bir dizi alt aile olarak düşünebiliriz.
İki kavram birbiriyle yakından ilişkilidir ancak farklıdır.
İki yapı arasındaki soyutlama
Soyut yorumlama anlayışı, düşündüğünüz yapıları bir düzen anlayışıyla donatmanın faydalı olduğudur. İki yapıyı düşünün
(M,fM) ve (N,fN), ile fM:M→M ve fN:N→N ilgi operasyonları olarak.
Evrensel cebir anlamında bir homomorfizm şöyle görünecektir:
h:M→N eşitliği tatmin eden bir işlevdir h(fM(a))=fN(h(a)).
Yukarıda görünen iki yapıyı ön siparişli yapılar olarak görebiliriz
(M,=,fM) ve (N,=,fN)
ve tatmin edici bir fonksiyon olarak yeniden yazabileceğimiz homomorfizm
- Eğer a=b sonra h(a)=h(b), ve
- hepsi için a içinde M, h(fM(a))=fN(h(a)).
Şimdi, mantıklı olan başka bir yaklaşım fikriniz olduğunu varsayalım. Örneğin, program doğrulamasındaki durum kümeleriyle uğraştığımızda, alt kümeye dahil olma belirli bir uygulama için mantıklıdır veya otomatik kesinti formülleriyle uğraşırken, ima mantıklıdır. Daha genel olarak,
(M,⪯,fM) ve (N,⊑,fN), nerede ⪯ ve ⊑ ön siparişlerdir.
Şimdi, homomorfizm yerine bir soyutlama fonksiyonuna sahip olabiliriz
α:M→N hangisi
- monoton, yani her zaman a⪯b sahibiz α(a)⊑α(b), ve
- operasyonlarla yarı işe gidip gelir: α(fM(a))⊑fN(α(a)) hepsi için a içinde M.
Soyutlama işlevi, eğer yapının N yapının bir soyutlamasıdır M, ardından bir terimi N daha kesin sonuçlar veremez (yaklaşık olarak N) aynı terimi M ve daha sonra N.
Şimdi soruna, arıtmanın aksine soyutlama açısından yaklaşmanın gerekli olup olmadığını sorabiliriz. Anlamı, söyleyemeyizM bir ayrıntılandırmadır Nve şartları terim olarak formüle eder. Bu, bir somutlaştırma fonksiyonunun yaptığı şeydir .
Bir somutlaştırma işlevi γ:N→Molan monoton ve tatmin eşitsizlikfM(γ(b))⪯γ(fN(b)).
Soyut yorumlamada soyutlama ve somutlaştırma koşullarına sağlamlık koşulları denir. Özel durumdaα ve γbir Galois bağlantısı oluştururken, soyutlama ve somutlaştırma koşulları eşdeğerdir. Genel olarak, eşdeğer değildir.
Şimdiye kadar yaptığımız her şey sadece bir çift yapı arasındaki soyutlama kavramını resmileştiriyor. Söylediklerim, kategori teorisi dilinde çok daha özlü bir şekilde özetlenebilir. Yukarıdaki yorumunuz nedeniyle kategorilerden kaçındım.
Soyutlama Hiyerarşileri
Bir yapımız olduğunu varsayalım Mbir ön sipariş ve bazı operasyonlarla donatılmıştı. Tüm yapıları düşünebilirizN öyle ki N bir soyutlamadır Myukarıdaki anlamda. Eğer buna sahipsekN1 bir soyutlamadır N2 ve her ikisi de M, hiyerarşinin üç unsuru var. `` Bir soyutlamadır '' ilişkisi , yapılar arasında bir ön sipariş tanımlamamıza izin verir. Soyutlamanın emrettiği bir yapı ailesine hiyerarşi diyelim .
Örneğinizi düşünürsem, soyut deltoidinizin bazı hiyerarşideki maksimum öğe için bir aday olabileceği anlaşılıyor. Tamamen emin değilim çünkü soyut deltoid, belirli bir deltoid yerine bir deltoid ailesi gibi görünüyor.
Şimdi yapabileceğiniz farklı hiyerarşileri düşünmektir. Tüm deltoidlerin hiyerarşisi. Yukarıdaki çeşitli hususlara dayanan bir alt hiyerarşi. Soyut yorum bağlamındaki spesifik bir örnek, belirli bir güç kümesi kafesi ile Galois bağlantısında olan tam kafes hiyerarşisi ve sadece dağıtıcı veya sadece Boole kafeslerinden oluşan alt hiyerarşilerdir.
Martin Berger'in yorumlarda belirttiği gibi, hiyerarşiler arasındaki bu soyutlama kavramı, kategoriler arasındaki sıfatlar tarafından yakalanmaktadır.
Kategorik Bir Bakış
Kategoriler hakkında daha fazla yorum yapılmasını isteyen bir yorum vardı. Bu yorum artık yok ama ben yine de cevap vereceğim.
Geri dönelim ve deltoidlerin tasarımında ne yaptığınıza ve yukarıda daha genel bir bakış açısıyla anlattığım konulara bakalım. Bir yazılım bağlamında manipüle ettiğimiz varlıkların temel yapısını ve bu varlıklar arasındaki ilişkiyi anlamak istiyoruz.
İlk önemli farkındalık, sadece bir dizi unsurla değil, bu unsurlar ve bu operasyonların özellikleri üzerinde gerçekleştirebileceğimiz operasyonlarla da ilgilenmemizdir. Bu sezgi nesne yönelimli programlamada sınıfların tasarımını ve cebirsel yapıların tanımını yönlendirir. Bu sezgiyi, birkaç ilgilenilen işlemi tanımlayan bir deltoid tanımında zaten açık hale getirdiniz. Daha genel olarak, bu cebirsel tanımların altında yatan düşünce sürecidir. Operasyonlarımızın ne olduğunu ve hangi özelliklere sahip olduklarını tanımlamamız gerekiyor. Bu adım bize birlikte çalıştığımız tür yapısını anlatır.
İkinci farkındalık, sadece bir dizi unsurla değil, soyutlama ilişkisiyle de ilgilenmemizdir. Soyutlamayı hayal edebileceğim en basit resmileştirme, önceden sipariş edilmiş bir seti düşünmektir. Önceden sıralanmış bir seti, bir setin, pişmiş bir yaklaşım kavramıyla gelen bir şeye sıkı bir genellemesi olarak düşünebiliriz.
İdeal olarak, yukarıdaki her iki bilginin de birinci sınıf vatandaş olduğu bir ortamda çalışmak istiyoruz. Yani, bir cebir gibi yazılan bir ayar, ama aynı zamanda bir ön siparişin yaklaşık farkındalık ayarı istiyoruz. Bu yönde atılan ilk adım bir kafes düşünmektir. Bir kafes kavramsal olarak ilginç bir yapıdır, çünkü onu iki eşdeğer şekilde tanımlayabiliriz.
- Bir kafesi eşit olarak küme olarak tanımlayabiliriz (L,⊓,⊔)bir buluşma ve birleştirme işlemi ile donatılmıştır. Daha sonra kısmi düzeni tanımlayarak türetebiliriz .a⊑b her zaman tutmak a⊓b=a.
- Alternatif olarak, bir kafesi kısmen sıralı küme olarak tanımlamak (L,⊑) her elementin Lbenzersiz bir en büyük alt sınır ve en az üst sınır vardır. Daha sonra buluşma ve birleştirme işlemlerini kısmi sıradan türetebiliriz .
Bu nedenle bir kafes cebirsel veya yaklaşık perspektiften yaklaşılabilen matematiksel bir yapıdır. Buradaki eksiklik, bir kafesin elemanlarının kendilerinin yaklaşık ilişki içine çarpan bir tip yapıya sahip olmamalarıdır. Yani, az ya da çok yapıya sahip olma fikrine dayalı unsurları karşılaştıramayız.
Sorununuz bağlamında, kategorileri cebirsel bir ortamda hem yaklaĢım (morfizmlerde) hem de tip yapıyı yakalayan ön siparişlerin doğal bir genellemesi olarak düşünebilirsiniz. Kategori teorisinin oluşturulması, çeşitli gereksiz ayrımlardan vazgeçmemize ve önem verdiğiniz varlıkların yapısına ve bu yapının yakınlaştırılmasına odaklanmamızı sağlar. Evrensel özellikler ve sıfatlar, ilgilendiğiniz yapıların manzarasını anlamak için çok güçlü bir kelime haznesi ve araçlar sağlar ve farklı soyutlama seviyeleri gibi sezgisel kavramların bile matematiksel olarak titizlikle ele alınmasını sağlar.
Soyut deltoidler hakkındaki yorumumla ilgili olarak, istediğiniz bir kategori. Soyut deltoid, kümeler kategorisine benzer belirli bir kategoridir. Düşündüğünüz başka kategoriler de var. Başlangıçta kategori teorisi anlamında bir terminal (veya son) nesne olacağını deltoid olarak tanımladığınızı sanıyordum.
Kategori teorisinin çok tatmin edici cevaplar verdiği soruları inceliyorsunuz. Umarım bu sonuca kendiniz gelebilirsiniz.
Referanslar
- Soyut yorumlama ve mantık programlarına uygulama , Patrick Cousot ve Radhia Cousot. Bu makalenin ilk yarısı, soyut yorumlama konusuna genel bir öğretici stil girişidir.
- Soyut yorum çerçeveleri , Patrick Cousot ve Radhia Cousot. Bu makalede, soyutlama ve somutlaştırma işlevleri ile ilgili yukarıda çizdiğim tüm olasılıklar ayrıntılı olarak tartışılmaktadır.
- Program Analiz Çerçevelerinin Sistematik Tasarımı , Patrick Cousot ve Radhia Cousot. Bu, program analizi bağlamında soyutlama hiyerarşileri kavramını ortaya koyan makaleydi.
- Soyut Yorum , Francesco Ranzato ve Francesco Tapparo tarafından Genelleştirilmiş Güçlü Koruma . Bu makale bu fikirleri zamansal mantık formüllerini koruyan farklı bir soyutlama bağlamında uygulamaktadır. Burada Boole ve dağıtıcı soyutlamaların örneklerini bulacaksınız.
- Soyut Yorum, Mantıksal İlişkiler ve Kan Uzantıları , Samson Abramsky. Yukarıdaki sıra teorik malzeme hakkında bir kategori teorisi perspektifi sunar.