Naif küme teorisine dayalı tip sistemi


11

Anladığım kadarıyla, bilgisayar bilimlerinde veri türleri, Russell'ın paradoksu gibi şeyler nedeniyle küme teorisine dayanmaz, ancak gerçek dünya programlama dillerinde olduğu gibi, "kendini içermeyen küme" gibi karmaşık veri türlerini ifade edemeyiz, uygulama türünün, örnek üyeliğinin bu tür / kümeye özgü özellik sayısıyla (belirli özelliklerin, yöntemlerin varlığı) tanımlandığı sonsuz bir üye kümesi olduğunu söyleyebilir misiniz? Hayır ise karşı örnek ne olurdu?


1
Russell'ın paradoksunun bununla doğrudan bir ilgisi yok.
Andrej Bauer

Yanıtlar:


11

Türlerin anlambiliminde kümelerden kaçınmanın temel nedeni, tipik bir programlama dilinin keyfi yinelemeli işlevleri tanımlamamıza izin vermesidir. Bu nedenle, bir türün anlamı ne olursa olsun, sabit nokta özelliğine sahip olması gerekir. Böyle bir özelliğe sahip olan tek set, tekli settir.

vττv=Φ(v)Φ:τττTf:TTT

Elbette suçlunun klasik mantık olduğunu da anlayabilirsiniz. Sezgisel küme teorisi ile çalışıyorsanız, sabit nokta özelliğine sahip birçok kümenin olduğunu varsaymak tutarlıdır. Aslında, bu programlama dilinin anlambilimi için kullanılmıştır, örneğin bakınız

Alex Simpson, Sezgisel Küme Teorisi Modellerinde Özyinelemeli Tipler İçin Hesaplamalı Yeterlilik , Saf ve Uygulamalı Mantık Yıllarında, 130: 207-275, 2004.


7

π


1
Castagna'nın öncüleri var. Uzun zaman önce insanlar PER modellerinde alt tipi modellemek için alt küme ilişkisini kullanmışlardır. Bir tür kısmi denklik ilişkisine (PER) karşılık gelir ve alt tipleme bu tür ilişkilerin sadece dahil edilmesidir.
Andrej Bauer

4

Birkaç istisna dışında (Dave Clarke'ın belirttiği gibi), basit set-teorik tür semantiklerinin kullanımı zordur. Bunun nedeni, veri soyutlamanın küme teorik anlambilimiyle çok iyi oynamamasıdır.

α.ααU

[[α.αα]]=ΠXU.XX

UUXXXUα

α.αα


Neel, bu cevabın mantıklı olduğunu düşünmüyorum. Dilin anlambilimi standart F-stil anlambilimiyse, bir derleyici tür sistemine göre optimizasyonu iyi yapabilir. Anlambilim, küme kuramsal anlambilimiyse, optimizasyon sorunsuz olur. Türler için hangi modeli kullandığınıza girmiyor.
Sam Tobin-Hochstadt

Sam, ne demek istediğini anlamıyorum: Bana tamamen katıldığın anlaşılıyor! Standart set-teorik anlambilim, bu türün tek sakininin kimlik olduğunu kanıtlayamaz, bu yüzden farklı bir anlambilime ihtiyacınız vardır.
Neel Krishnaswami

1
@Neel: Açıkladığımız problem setlerden uzaklaştığımızda bile devam ediyor. Çözüm, kümelerin kategorisini başka bir şeyle değiştirmek değil, parametrikliği farklı modellemek. Yani, bildiğiniz gibi eminim ki ilişkisel parametriklik kullanmak zorundadır . Ama sonra yanılmıyorsam işler de aynı şekilde işler. Kümelerdeki "tek" sorun sabit noktaların eksikliğidir (hem özyinelemeli değerler hem de özyinelemeli tipler düzeyinde).
Andrej Bauer

1
Ah, sanırım seni ve Sam'i neden karıştırdığımı anlıyorum! Kesinlikle naif bir set-teorik model kullanmanın mantıksız olduğunu ima etmek istemiyorum, sadece bu model genellikle yararsız cevaplar veriyor - bu yüzden "kullanımı zor" dedim ve "yanlış" demedim. Elbette yararlı bir model oluşturmak için setleri kullanabilirsiniz (yani, ilişkisel olarak), ancak artık soruları önerilen şekilde setler olarak yorumlamıyoruz. (Ayrıca, bildiğiniz gibi, kestirimci polimorfizm ile saf bir model yoktur, ancak parametriklik hala anlamlı olarak anlamlıdır.)
Neel Krishnaswami

1
Bence anlamınız anlambilim arasındaki yazışma ile ilgilidir - set teorik bir anlambilim Sistem F-tarzı polimorfizm için uygun değildir, çünkü ifade edilemeyen sakinleri vardır. Ancak bu, set teorik semantiğe karşı bir nokta değil , sadece semantiğimizin kabul etmesi gereken bir ifade. Eğer dilimiz konuştuğunuz işlevleri ifade etmemize izin veriyorsa (örneğin Yazılı Raket'in yaptığı gibi), set teorik semantiği isteyebiliriz .
Sam Tobin-Hochstadt
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.