İlişkisel parametriklik nasıl motive edilebilir?


15

Parametrik polimorfizm için ilişkisel anlambilimin özünü anlamanın doğal bir yolu var mı?

İlişkisel parametriklik, la John Reynolds'un "Türleri, Soyutlama ve Parametrik Polimorfizm" kavramını okumaya başladım ve ilişkisel anlambilimin nasıl motive edildiğini anlamada sorun yaşıyorum. Küme semantiği benim için çok mantıklı ve küme semantiğinin parametrik polimorfizmi tanımlamak için yetersiz olduğunu anlıyorum, ancak ilişkisel semantiğe sıçramak sihir gibi gözüküyor, hiçbir yerden çıkmıyor.

"Temel türler ve terimler üzerinde ilişki varsayalım ve sonra türetilmiş terimlerin yorumlanması, programlama dilinizde ... böyle ve doğal bir şey ... arasındaki doğal ilişkidir . "? Yoksa başka bir doğal açıklama mı?

Yanıtlar:


22

İlişkisel parametriklik, John Reynolds tarafından ortaya atılan en önemli fikirlerden biridir, bu yüzden sihir gibi görünmesi çok fazla sürpriz olmamalıdır. İşte onu nasıl icat etmiş olabileceğine dair bir masal.

λ

X:Type.XX,
λX:Type.λa:X.if (X={0,1}) then 0 else a.
XXX

Ve sonra iki şey fark ediyorsunuz:

  1. Baktığınız her istenmeyen örnek için, onu ortadan kaldıran bir ilişki bulabilirsiniz, ancak hepsini ortadan kaldıran tek bir ilişki yoktur.

Böylece, aranan işlevlerin tüm ilişkileri koruyan işlevler olduğu ve ilişkisel modelin doğduğu parlak bir düşünceye sahipsiniz .


1
Teşekkürler Andrej. Bu da şu soruyu gündeme getiriyor: İstenmeyen tüm örnekleri ortadan kaldıran daha küçük bir ilişki alt sınıfı var mı?
Tom Ellis

Muhtemelen ilişkilerin mantıksal karmaşıklığını sınırlayabiliriz çünkü sadece hesaplanabilir haritalar hakkında endişelenmemiz gerekir. Ama cevap verebilecek bir uzman değilim. @UdayReddy'yi çağırdım.
Andrej Bauer

2
@TomEllis. Evet, özel durumlarda, bir alt sınıf sınıfı yeterli olabilir. En acil özel durum, tüm işlemler birinci dereceden ise, fonksiyonların (toplam, tek değerli ilişkiler) yeterli olmasıdır. Alanlar için kısmi izomorfizmler yeterlidir. Reynolds'in önde gelen örneğinin karmaşık sayılar alanı olduğunu ve Bessel ve Descartes arasındaki mantıksal ilişkisinin kısmi bir izomorfizm olduğunu hatırlayın.
Uday Reddy

4
X.XX

Türleri kümeler olarak yorumlarsanız, istenmeyen işlevlerin olduğunu gösterirsiniz. Aynı şey ilişkiler için de geçerli değil mi? \X:Type. \a:X. if X = {(0,0), (1,0), (0,1), (1,1)} then 0 else a
Jules

11

Sorunuzun cevabı Reynolds'un masalında gerçekten var (Bölüm 1). Sizin için yorumlamaya çalışayım.

Türlerin soyutlama olarak ele alındığı bir dilde veya formalizmde , bir tür değişkeni herhangi bir soyut kavramı temsil edebilir. Türlerin bazı tür terimleri sözdizimi veya bazı sabit tür operatörleri koleksiyonu ile üretildiğini veya iki tür eşitlik vb. İçin test edebileceğimizi varsaymıyoruz. Böyle bir dilde, bir işlev bir tür değişkeni içeriyorsa, işlevin bu tür değerlere yapabileceği şey, verilen değerlerin etrafında karıştırmaktır. Bu türün yeni değerlerini icat edemez, çünkü bu türün ne olduğunu "bilmez"! Parametrikliğin sezgisel fikri budur .

tAAR:AAxAxAxxRtxxRxx

AAAAAA

RIKKt×IntInt×tR×IIntIInt×Rf(x,n)(x,n)(m,x)(m,x)F(IA1,,IAn)=IF(A1,,An) Emlak.

tttIntInttt×tt×t(tt)t(tt)(tt)


Sonunda, çağrım işe yaradı!
Andrej Bauer

2
@AndrejBauer. Hmm, aslında bir çağrı alamadım. @ UdayReddy büyüsünün yalnızca yorumun başında çalışması olabilir. Her durumda, çağrıya gerek yoktur. "Parametriklik" filtrelerim arasında.
Uday Reddy

“işlevin bu türdeki değerlere yapabileceği tek şey, verilen değerlerin etrafında karıştırmaktır” - aslında, karıştırmadan ayrı olarak, işlev verilen değeri silebilir (zayıflatabilir) ve kopyalayabilir (daralma). Bu işlemler her zaman kullanılabilir olduğundan, değer göründüğü kadar soyut değildir.
asukasz Lew

@ ŁukaszYeni, haklısın. Bunun "soyutlama" kaybı olarak nitelendirilebileceğini bilmiyorum.
Uday Reddy

@UdayReddy Yorumu kaldırdım ve bunu tek başına bir soru olarak sordum .
asukasz Lew

3

ω

Ayrıca, aynı genişleme davranışına sahip fonksiyonları tanımlamak caziptir, böylece bir denklik ilişkisine yol açar. "Undefined" fonksiyonlarını, yani iyi biçimlendirilmiş bazı girişler için "loop" fonksiyonlarını hariç tutarsak ilişki kısmi olur.

PER modelleri bunun genellemesidir.

Bu modelleri görmenin başka bir yolu da Homotopy Type Theory'nin basit set modellerinin (çok) özel bir halidir . Bu çerçevede, türler (bir genelleme), ilişkilerle kümeler ve bu ilişkiler arasındaki ilişkiler, vb. Olarak yorumlanır. En alt düzeyde basitçe PER modellerine sahibiz.

Son olarak, yapıcı matematik alanı ilgili kavramların ortaya çıktığını gördü, özellikle Piskopos Set Teorisi, bir kümenin her iki öğeyi ve denklik olması gereken açık bir eşitlik ilişkisini vererek tanımlamayı içerir. Yapıcı matematiğin bazı ilkelerinin tür teorisine girmesini beklemek doğaldır.


1
Ah, ancak PER modelleri çok hoş değil ve uwnanted polimorfik fonksiyonlar içerebilir. Bunlardan kurtulmak için ilişkisel PER modellerine geçmek gerekir.
Andrej Bauer

Yine de ilişkisel yaklaşımı motive ettiğini hissediyorum.
cody

@cody. Katılıyorum. PERs'i "set teorisi" ile ilişkiler kurmanın bir yolu olarak düşünüyorum, böylece ilk etapta imkansız modeller elde edebiliriz. Homotopy türü teoriden bahsettiğiniz için teşekkürler. Benzer fikirleri olduğunu bilmiyordum.
Uday Reddy

@UdayReddy: fikirler çok benzer! Özellikle, soyut türleri bağımlılıklarla ilişkilendiren "uyumlu bağımlı uygulamalar" fikri, tek değerli eşitliğin merceğinden anlaşılabilir.
cody
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.