Set ve type arasındaki anlamsal fark tam olarak nedir?


33

EDIT: Şimdi kategoriler ve kümeler arasındaki fark hakkında benzer bir soru sordum .

Her ne zaman tip teorisini okuduğumda (şüphesiz gayri resmidir), küme teorisinden somut olarak nasıl farklılaştığını gerçekten anlayamıyorum .

"X bir X kümesine aittir" ile "x X türünde" demek arasında kavramsal bir fark olduğunu anlıyorum, çünkü sezgisel olarak, bir küme bir nesne belirli özelliklere sahipken sezgisel olarak, sadece bir nesne koleksiyonudur. Bununla birlikte, kümeler genellikle özelliklere göre de tanımlanır ve eğer öyleyse, bu ayrımın herhangi bir şekilde nasıl önemli olduğunu anlamada sorun yaşıyorum.

Yani çoğunda beton tam olarak yok neyi şekilde, ima hakkında x o tipi olduğunu söylemek , bu seti bir unsur olduğunu söyleyerek kıyasla S ?TS

(Karşılaştırmaları en açıklığa kavuşturmak için herhangi bir tip ve seti seçebilirsiniz).


"Type" kelimesini kullandığınız / duyduğunuz bağlam nedir? Adınızın önerdiği gibi programlama dilleri mi? Çünkü bence aşağıdaki cevaplar aksi varsayılıyor.
einpoklum - Monica

@ einpoklum, "bağlam" ın ne olduğunu nasıl açıklayacağımızdan% 100 emin değilim, ama temelde bir şey: Matematikteki türlerin rolünü anlamaya çalışıyorum. Temel olarak, kümelerin (gördüğüm gibi) iki bağlamı vardır: birincisi günlük matematiği yapmak için nesnelerin koleksiyonları olarak kullanılırlar. İkincisi, aksiyomatik küme teorisindeki nesnelerdir, burada çoğunlukla çok garip ama yararlı bir araç olarak kullanılırlar. matematikten bahseden birinci dereceden mantıkta, kümelerin fonksiyonlara ve sayılara denk gelmesini sağlayın. Ben ilk olarak "set" ve "type" arasındaki ilişkiyle ilgileniyorum.
user56834,

Hangi türlerin rolü? Matematik kitaplarında / ders kitaplarında gördüğünüz türler veya bilgisayar programlarındaki değişken türleri?
einpoklum - Monica

1
@ einpoklum, bu soru matematik kitaplarındakilerle ilgili. (Gerçekte, eğer varsa matematik türleri ile programlama dilleri arasındaki türler arasındaki temel farkı bilmek de ilgimi çekiyor olsa da. Ancak bu sorunun konusu değildi).
user56834,

Yanıtlar:


29

Kümeler ve türler arasındaki farkı anlamak için, olanlar “koleksiyon” ve “inşaat” öncesi matematiksel fikirlere geri dönmeli ve kümelerin ve türlerin bunları nasıl matematikleştirdiğini görmelidir .

Matematiğin konusu hakkında bir takım olasılıklar var. Bunlardan ikisi:

  1. Matematiği, matematiksel nesnelerin bazı kurallara göre yapılandırıldığı bir faaliyet olarak görüyoruz (geometriyi, cetvel ve pusula ile nokta, çizgi ve daire oluşturma etkinliği olarak düşünün). Böylece, matematik nesneler yöntemine göre organize edilir inşa ve farklı vardır tipi yapı. Matematiksel bir amaç her zaman için yapılandırılmıştır bazı eşsiz tipini belirler eşsiz bir şekilde,.

  2. Matematiği önceden var olan matematiksel nesnelerle dolu geniş bir evren olarak düşünüyoruz (verilen geometrik düzlemi düşünün). Bu nesneleri keşfediyor, analiz ediyor ve düşünüyoruz (düzlemde noktalar, çizgiler ve daireler olduğunu gözlemliyoruz). Biz toplamak onları sette . Genellikle ortak bir şeye sahip olan unsurları topluyoruz (örneğin, belirli bir noktadan geçen tüm satırlar), ancak prensipte bir küme isteğe bağlı nesnelerin seçimini bir arada tutabilir. Bir küme, öğeleri tarafından ve yalnızca öğeleri tarafından belirtilir. Bir matematiksel nesne birçok kümeye ait olabilir.

Yukarıdaki olasılıkların sadece ikisinin olduğunu veya bunlardan herhangi birinin matematiğin ne olduğunu tamamen tanımladığını söylemiyoruz. Bununla birlikte, her biri görebilmekte, çok çeşitli matematiksel faaliyetleri faydalı bir şekilde tanımlayan genel bir matematik teorisi için faydalı bir başlangıç ​​noktası olarak hizmet edebilmektedir.

türünü almak ve T kurallarını kullanarak inşa edebileceğimiz her şeyin koleksiyonunu hayal etmek doğaldır . Bu uzantı ait T ve öyle değil T kendisi. Örneğin, burada farklı yapım kurallarına sahip iki tür var, ancak aynı uzantıya sahipler:TTT T

  1. (n,p)npn3

  2. (m,q)mqm2

{nNn is an even prime larger than 3}
{mNm is an odd prime smaller than 2}

Tip teorisinin sözdizimi ile ilgili olmadığını unutmayın. Bu, matematiksel bir yapı teorisidir, tıpkı küme teorisi gibi, koleksiyonların da matematiksel bir teorisidir. Sadece böyle olur, normal tip teori sunumları sözdizimini vurgular ve sonuçta insanlar düşünerek tip teorisinin sözdizimi olduğunu düşünürler. Durum bu değil. Bir matematiksel nesneyi (yapı), onu temsil eden (eski terim) sözdizimsel bir ifadeyle karıştırmak, uzun süredir mantıkçıları şaşırtmış, ancak artık değil, temel bir kategori hatasıdır.


1
Güzel teşekkür ederim! Bir detayı netleştirir misin? Uzantısı ikisi de boş olan iki türü listelediğinizde, " elemanları ... olan tür" dürsünüz . Tamamen açıklığım için, bunu söylemenin% 100 doğru yolu mu? Bir önceki cümlede bir türün bir koleksiyon olmadığını söylemiştiniz, bu yüzden “elemanlara” sahip olamayacak gibi görünüyor (kümelerle ilişkilendiririm). Temel olarak, şimdi yazdığınız şekilde, türü, kapsamı olan kümeye göre tanımlamışsınızdır. Bunu düşünmüyorsan, fikirlerini tür olarak yakalamak için onları daha kesin olarak değiştirir miydin?
user56834,

Uzantı bir türde bir çok yararlı bir kavramdır ve bu koleksiyonun bir tür olduğu için, biz "bir tür uzantısı elemanı" diyebilirsiniz. Bu hantaldır, bu yüzden genellikle sadece "bir tür eleman" olarak kısaltılır. Karışıklık olasılığını azaltmak için kelime öbeklerini kaldırdım, ancak bunun ortak terminoloji olduğuna dikkat edin.
Andrej Bauer

xx:TxXTXTTx
user56834

xXTx:Tx

4
Evet, bu kitapların nerede olduğunu merak ediyor. Birileri onları yazmalı.
Andrej Bauer

11

Başlamak için, setler ve tipler aynı arenada bile değil. Kümeler, ZFC küme teorisi gibi birinci dereceden bir teori nesnesidir. Türler büyümüş çeşitler gibidir. Farklı bir ifadeyle, küme teorisi birinci dereceden mantık içinde birinci dereceden bir teoridir . Bir tip teorisi, mantığın kendisinin bir uzantısıdır. Martin-Löf Tip Teorisi, örneğin, birinci dereceden mantık içerisinde birinci dereceden bir teori olarak sunulmaz. Aynı anda hem set hem de tiplerden bahsetmek o kadar da yaygın değil.

SVscale:S×VVscale(scale(s,v),v)f(x)fXYXYff(x)(x:X)y=3x:X

xyf(x)=y(x,y)fp.pfp=(x,y)

p.pf(z.zp[z=x(w.wzw=y)])
fπ(7)=3π
f(x)={N,if x=17,if x=QxRR,if x=(Z,N)
küme teorisinde tamamen meşru bir işlevdir. Tip teorisinde buna benzer bir şey bile yoktur. En yakını Tarskian evreni için kodlar kullanmak olacaktır. Kümeler küme teorisinin nesneleridir; tipler tip teorisinin nesnesi değildir.

Bir tür bir şeyler topluluğu değildir (bu konuda bir set de değildir ...) ve bir özellik tarafından tanımlanmamıştır. Tür, söz konusu tür için hangi işlemlerin uygulanabilir olduğunu ve hangi ifadelerin iyi biçimlendirildiğini bilmenizi sağlayan sözdizimsel bir kategoridir. Bir tür-öneri perspektifinden bakıldığında, hangi türlerin sınıflandırıldığı, türün karşılık geldiği önermenin geçerli kanıtlarıdır. Yani, belirli bir türün iyi biçimlendirilmiş (yani iyi yazılmış) terimleri, ilgili önermenin geçerli ispatlarına (aynı zamanda sözdizimsel nesnelerdir) karşılık gelir. Küme teorisinde böyle bir şey olmaz.

Küme teorisi ve tip teorisi gerçekten aynı şey değildir.


1
Türlerin yalnızca sözdizimsel varlıklar olduğu yanlıştır.
Andrej Bauer

1
Bu çok faydalı, ama cevabınızdaki ana nokta beni rahatsız ediyor. Bana öyle geliyor ki (birçok insanın yaptığı veya alternatif olarak bir hata olmadığı ve yanlış olduğum), "bir kümenin bir şeyler topluluğu olmadığını" söylemenin bir hata olduğu anlaşılıyor. Bir setin bir şeyler koleksiyonu olduğunu söyleyebilirim. Bir kümenin en temel özelliği budur. Aslında, örneğin ZFC'nin, kümelerin nesne koleksiyonları olduğu düşünüldüğünde doğru olduklarını söyleyemeden, seçilecek doğru aksiyomlar (tamamen keyfi formüller yerine) olduğunu nasıl bilebiliriz? Tabii ki, anlıyorum ki ...
user56834


1
@ Programmer2134 Buna cevap vermek için, "koleksiyon" kelimesinin anlamsal anlamına girmeliyiz . "Doğru" nun ne anlama geldiğini tam olarak tanımlamak için zaman ayırmazsanız, "doğru" olduklarından emin olamayız. Bununla birlikte, söyleyebileceğimiz şey "set" in, koleksiyon kavramını yenen, koleksiyonun sezgisel kavramına uyan tutarlı bir sistem arayan yüz yıldan fazla matematikçilerin sonucudur. Bu tutarlılığı sağlamak için kararlar almak zorunda kaldılar. Örneğin, kümeler matematikteki tek koleksiyon değildir. Bir "sınıf" ayrıca bir koleksiyonu açıklar.
Cort Ammon - Monica

1
xTxT

9

xT xS

Bir örnek

Bu ayrımı açıklığa kavuşturmak için Herman Geuvers'ın ders notlarında verilen örneği kullanacağım . İlk önce, bir türün yaşadığı bir örneğe bakalım:

3+(78)5:Nat,
3{nNx,y,zN+(xn+ynzn)}

Buradaki ana fark, ilk ifadenin doğal bir sayı olup olmadığını sınamak için, bazı anlamsal anlamlar hesaplamamız gerekmiyor, yalnızca tüm kelimelerin Nat türünde olduğu ve tüm operatörlerin olduğu gerçeğini 'okumamız' gerekiyor. Nat tipi kapalıdır.

33

Algoritmalar vs Kanıtlar

Özetlemek gerekirse, türler genellikle bazı ifadelerin sözdizimindeki 'basit' talepler için kullanılır, öyle ki bir tür üyeliği bir algoritma ile kontrol edilebilir, bir grubun üyeliğini test etmek için genellikle bir kanıt isteriz .

Bu ayrımın neden faydalı olduğunu görmek için, yazılı bir programlama dilinin derleyicisini düşünün. Bu derleyicinin 'türleri kontrol etmek' için resmi bir kanıt oluşturması gerekiyorsa, derleyiciden neredeyse imkansız bir görev yapması istenir (otomatik teorem ispatlaması genel olarak zordur). Öte yandan, derleyici türleri kontrol etmek için basitçe (verimli) bir algoritmayı çalıştırabilirse, görevi gerçekçi bir şekilde gerçekleştirebilir.

Kesin (er) bir yorum için bir motivasyon

Kümelerin ve türlerin semantik anlamının birçok yorumu vardır. Burada yapılan ayrımın altında, genişleyemeyen türler ve kararsız tür kontrolüne sahip türler (yorumlarda belirtildiği gibi NuPRL'de kullanılanlar gibi) 'türler' olmayacak olsa da, diğerleri elbette bu türleri özgürce çağırmakta özgürdürler. tanımlarına uydukları sürece, onlara başka bir şey söyleyebilecekleri gibi).

Bununla birlikte, biz (Herman Geuvers ve ben) bu yorumu pencereden atmamayı tercih ediyoruz, ki (Herman olmasa da, aynı fikirde olsa da) aşağıdaki motivasyonları benimsedim:

Her şeyden önce, bu yorumlamanın amacı Andrej Bauer'ınkinden çok da uzak değil . Bir sözdiziminin amacı genellikle bir şeyi nasıl inşa edeceğinizi ve aslında onu inşa etmek için bir algoritmaya sahip olmayı açıklamaktır. Ayrıca, bir kümenin özelliklerine genellikle yalnızca kararsızlığa izin verilen anlamsal bir açıklama istediğimizde ihtiyaç duyulur.

Bu nedenle, daha katı tanımımızın avantajı, ayırmayı daha basit tutmak, yaygın pratik kullanımla daha doğrudan ilişkili bir ayrım yapmaktır. Bu, NuPRL gibi, ihtiyaç duyduğunuz veya kullanımınızı gevşetmek istemediğiniz sürece, işe yarar.


3
Tip kontrolünün kesinleşmesine gerek yoktur (kesinlikle istenmesine rağmen). Örneğin NuPRL, bir terimin bir türün içinde bulunduğuna dair bir kanıt sunmasını gerektirir.
Derek Elkins,

3
3...

1
@DerekElkins NuPRL'ye aşina değilim, ancak örneğin prova asistanı Coq kesinlikle kendi başına tip kontrolünü yapıyor (yani, 'teorimin türü' terimdir). NuPRL, kullanıcının belirli bir terimin kullanıldığını ispat etmesi durumunda ispatı nasıl doğrular? (Başka bir deyişle, bu NuPRL gibi sesler Curry-Howard yazışmalarını kullanmaz, peki ne kullanır?)
Ayrık kertenkele

1
@Discretelizard NuPRL'nin tipik olduğunu söylemiyorum. Kesinlikle tip kontrolünün karar verilebilir olması olağan bir durumdur. Oldukça farklı bir yol izlemesi nedeniyle aşina olmayı şiddetle tavsiye ederim. NuPRL, daha çok bir tür iyileştirme sistemi haline getiren, kilise tarzı bir matematik yerine bir köri tarzıdır. Her halükarda, sadece terimler yazmak (veya terimler üreten taktikler) yerine, türevlerin kendilerini yazmak için bir LCF tarzı prova sisteminiz var. Muhtemelen, türevler önemli olan ve terimlerden çıkartabileceğimiz bir "şanssızlık".
Derek Elkins,

3

4

Kümeler ve türlerle ilgili en somut farklılıklardan birinin, zihninizdeki “şeylerin” biçimsel dile kodlanma biçimindeki fark olduğuna inanıyorum.

Hem kümeler hem de türler, nesneler hakkında ve nesnelerin koleksiyonları hakkında konuşmanıza izin verir. Asıl fark, kümelerle, şeyler hakkında istediğiniz herhangi bir soruyu sorabileceğiniz ve belki de doğru olabileceği; Türlerle birlikte, öncelikle sorunun anlamlı olduğunu kanıtlamanız gerekir.

B={true,false}N={0,1,}true=1

0[0]={}n+1[n+1]={[n]}[n]truefalsetrue=1true1

a=babtrue=1SBNιB:BSιN:NSιB(true)=ιN(1)

(ifvery_hard_questionthen1elsetrue)=1

Özet olarak, kümeler istediğiniz herhangi bir soruyu sorabilmenizi sağlar, ancak türler yanıtın onlara bağlı olabileceği durumlarda sizi kodlamaları açık hale getirmeye zorlar.


Rsin(2)

@AndrejBauer Doğru. Bu cevabın tek-sıralı teoriler (çoğu teori ve en azından en yaygın olanları dahil) ile çok-sıralı teoriler (tümü (?) Tipi teoriler dahil) arasında bir fark vereceğini kabul eder misiniz?
xavierm02,

Tek sıralı bir teoride bile terimleri formüllerden ayırmanız gerekir ...
Andrej Bauer

@AndrejBauer İkinci yorumunuzu anlamıyorum.
xavierm02,

(xX.ϕ(x))N
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.