Türlerin ikiliği nasıl tanımlanır?


12

Wadler'in Ücretsiz Olarak Özyinelemeli Türleri! [1], iki tür gösterdi: ve ve ikili olduklarını iddia etti . Özellikle, türünün olduğunu belirtti olduğu değil birincisinin ikili. Burada söz konusu ikilik, mantıktaki De Morgan ikilikten farklı görünüyor. Özellikle bahsi geçen üç tip için tiplerin ikililiğinin nasıl tanımlandığını merak ediyorum, üçüncüsü olmasa da ikincisinin neden birinci olduğunu. Teşekkürler.x . ( X F ( X ) ) × XX.(F(X)X)XX.(XF(X))×XX.X(XF(X))

[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt


Burada çok yardımcı olmayacağım, ama kategori teorik geliyor.
Anthony

Yanıtlar:


8

Bu bağlamda, dualite bir durumda en az sabit noktayı diğerinde en büyük sabit noktayı almayı ifade eder . hangi anlamda anlamaya çalışmalıyız ve , özyinelemeli denklemin "en az" ve "en büyük" çözümleridir .G = x . ( X F ( X ) ) × X F ( X ) XL=X.(F(X)X)XG=X.(XF(X))×XF(X)X

Her şeyden önce, ve (doğasını sınırlandırmak belli teknik varsayımlar altında sabit noktalar gerçekten olan karşılaştırma haritalar için) ve göre verilen ve izomorfizmlerdir. İşlevlere uyguladığımızda bir işlevlendirici, yani monoton olduğu gerçeğini kullandığımıza dikkat edin .G F v : F ( L ) L w : G F ( G ) vLGFv:F(L)Lw:GF(G)w ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
F
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

, aracılık eden bir izomorfizmle için herhangi bir çözüm olduğunu varsayalım . Sonra ve tarafından tanımlanmış kanonik haritalarımız var Bu nedenle, en azından ondan başka bir çözümle eşleştirebildiğimiz için ve en , çünkü başka bir çözümden onunla eşleştirebiliyoruz. İlk cebirler ve son kömürler hakkında konuşarak bunları daha kesin hale getirebiliriz, ama cevabımın kısa ve tatlı olmasını istiyorum ve cody de cebirleri nasıl açıkladı.F ( Y ) Y u : F ( Y ) Y α : L Y  ve  β : Y G αYF(Y)Yu:F(Y)Y

α:LY and β:YG
β
αf=fYu
L G
βy=(Y,(u1,y)).
LG

Uygulamada en az çözüm istekli veri tipleridir ve en büyük çözümler tembel veri tipleridir. Örneğin, sonra elde ilk durumda sonlu listelerini 'in ve ikinci sonlu ve sonsuz listeleri ' s.A AF(X)=1+A×XAA


Cevabım, ve sabit noktalar olduğuna dair kanıt eksik ( ilgili bazı varsayımlar altında , belirtilmemiş kalabilir). ve karşılaştırma haritalarını nasıl yazarım ? G F F ( L ) L G F ( G )LGFF(L)LGF(G)
Andrej Bauer

Tamam, Coq ile ve haritalarını buldum . vw
Andrej Bauer

için başka bir aday var gibi görünüyor , yani . Birisi neler olduğunu açıklayabilir mi? ww(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
Andrej Bauer

1
Bunun w'bir izomorfizm olduğunu kanıtladığınızı varsayıyorum , ama size geçerli bir kömür cebi mi veriyor? (Tahmin etmeliyim, ama yanılmış olabilirim ...) Meydan gidip geliyormuş gibi görünmüyor.
CA McCann

Notunda : homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… , Wadler ilk sürümü verir. Ancak bunu biraz farklı yazar: w (X, (f, x)) = F (açılmak X k) (fx). Bu, kömürgebanın yapısını daha net gösterir ve hemen hemen uygun korecursion morfizmlerinin değişmesini sağlar. Camcann'ın dediği gibi, diğer sürümünüzün bu kareleri işe almadığını düşünüyorum.
cody

7

Cevap kategorik olarak F-cebirlerinin merceğinden anlaşılabilir . kategorisindeki özyinelemeli tip kategorik gösterimi kabaca işlevi kullanılarak belirtilebilir . Daha sonra cebirleri kategorisindeICF:CCF

  • nesneler olarak: nesneleri ve bir morfizmanın birlikte AC
    α:F(A)A
  • ok gibi: kareler

    F-cebir morfizmi

Şimdi özyinelemeli tipi ile temsil edilecek , olması gerekiyor ilk bu kategoride: Biz gerekmezIFI

  1. Bir morfizmin:F(I)I
  2. Her cebiri bir morfizm Uygun kare gidip gelmesini sağlayan yeniden başlatacağım.F(A,α)fold:IA

Şimdi tanımlayın . Nasıl oldukça açık : sadece Building ben çalışmayın böylece, bakınız, Wadler bunu açıklıyor, biraz daha karmaşıktır. Bununla birlikte, bir pozitiflik şartı olarak görülebilen bir functor olması gerektiğini unutmayın.I=X.(F(X)X)Xfold

fold=λi:I.i A α:IA
inF

Şimdi kategori teorisinde, genellikle tüm okların tersine çevrildiği durumu dikkate almak istiyoruz. Bu durumda, verilen nedeniyle, kategorisini düşünebiliriz -coalgebras ileFF

  • Nesneler gibi: nesneleri arasında bir morfizma birlikte ZC
    ω:ZF(Z)
  • Oklar olarak, cebiri durumunda olduğu gibi kareler (ancak ve ters).Fαβ

Şimdi bu kategorideki terminal nesnesini incelemek istiyoruz . Gereksinimler şimdi tersine çevrildi:T

  1. Bir morfizmout:TF(T)
  2. Her biri için -coalgebra , bir morfizmanın .FZcofold:ZT

Bunu nasıl yapabiliriz? Eh bakınız, Wadler öngördüğünden, aldığımız . benzer şekilde, Bunun yerine bu yapı işe .T=X.(XF(X))×X

cofold=λz:Z.(Z,ω,z):ZT
T=X.X(XF(X))

6

Deneyimlerime göre, -calculi için türlerin ikiliklerini anlamak için iyi ve operasyonel bir yol calculus'dan geçmektir.λπ

Türleri işlem hesabına çevirdiğinizde (ayrıştırdığınızda) dualite basitleşir: girdi çıktı için ikili ve tersi . Dualiteye daha fazla bir şey yoktur.

In Eğer giriş ve çıkış arasında bir basit (ve neredeyse simetrik) ikiliği var -calculus. Diyelim ki . Daha sonra , bir kanal olan tip söylüyor bir Boole değeri ve bir tam sayıyı taşıyan, tam olarak bir çıkış yapar. Kanal bu tür yaşayan bir işlem olur . yazabileceğimiz ikili tip, bir girişin (bir boolean ve bir tam sayı olduğu bir çift olduğunu ifade eder . olarak yazıyoruzα = ( B O O l , I , n t ) α α x ¯ xf bir L s e , 7 ¯ α ( v , w ) hacim ağırlık ¯ a ( b O O l , ı , n t ) ¯ α x c ( v , w ) .0πα=(Bool,Int)ααxx¯false,7α¯(v,w)vwα¯(bool,int) . Bir işlem yaşayan en olacaktır . α¯xc(v,w).0

Doğal olarak, süreçler sadece basit tam sayı veya boole değerlerini değil, aynı zamanda kanalları da iletir. Örneğin, , iki değerden bir giriş yapan bir kanal açıklar; burada , bir tamsayıdır ve , tam olarak bir çıktı (tamsayı) yapmak için kullanılır. Açıkçası ikili , iki veri parçası, bir tamsayı ve bir girdi yazmak için kullanılan bir kanal açıklayan tamsayı. ve in ikiliği, tutarlı bir şekilde paralel bir tür olan sürecini oluşturabileceğimiz anlamına gelirβ=(int,(int))(v,w)vwβ¯=(int,(int))αα¯Pα bir kanal adı de bir işlem ile tipi vardır aynı de (diğer ortak kanallar varsayarak ve aynı zamanda çift vardır). Aynı şekilde ve ikili .xQα¯xPQββ¯

Bu, üst düzey türlere kolayca genelleştirilebilir, örneğin , öğesinin bulunduğu iki öğeyi giren bir türdür . tip ve tipi bir şey çıkış olarak verilmesi için kullanılan bir kanal . Bir kanalda bu tür sahip olan bir işlemin bir örneği, olduğu genel iletici biraz basitleştirilmesi, bu temelde tip tek yaşar . ( v , w ) v X w X x x ( v w ) . ¯ ağırlık v x . ( X , ( X ) ) X.(X,(X))(v,w)vXwXx

x(vw).w¯v
X.(X,(X))

Evrensel nicelik işlem düzeyinde ne anlama gelir? Basit bir yorum var: eğer veriler bir tip değişkeni ile yazılırsa, bir çıkışın konusu olarak kullanılamaz, sadece bir nesne. Bu yüzden bu verileri inceleyemeyiz, sadece aktarabilir veya unutabiliriz.

Tip için ikili bir . Varoluşsal niceliği nasıl yorumlayacağız? Oldukça basit: eğer veri varoluşsal olarak nicelenmiş bir tip değişkeni ile yazılırsa, sadece verileri denetlemeyen, ancak sadece geçiren (veya unut) işlemlere geçirilebilir. Başka bir deyişle, bunu yalnızca evrensel olarak nicelenen ikili tip değişkenini kullanan süreçlere aktarabiliriz.x . ( X , ( X ) ) X.(X,(X))X.(X,(X))

Bunun teorisi [1, 2, 3] 'te bazı detaylarda ve çalışmalara erişilmesi daha zor olan ve 4'te kutupsal doğrusal mantık ve onun dualite nosyonu ile çok ilgili bir şekilde ele alınmıştır .

Şimdi birçoğunuz bunun -calculi ile nasıl ilişkili olduğunu soruyorsunuz. Cevap, -calculi'nin, R. Milner 5'in öncü çalışmalarını takiben, calculus'a kesin bir şekilde ayrılabileceği ve her calculus tipinin calculus tipleriyle kesin bir uyumu olduğu yönündedir. Proses tipi seviyesindeki dualite, fonksiyon tipi seviyesindeki dualiteye dönüşür. Sadece fonksiyon uygulaması simetrik bir işlemden daha azdır ve işlem seviyesindeki dualitenin basitliği -calculus'un komplikasyonlarında gizlidir.λ π λ π λλλπλπλ

1 N. Yoshida ve diğerleri , -Cculculus'ta Güçlü Normalizasyonπ .

2 K. Honda ve diğerleri, Genericity ve -Calculusπ .

3 K. Honda ve ark., -Calculus'ta Kontrolπ .

4 K. Honda ve ark., Tipik bir pi-matematik ve polarize prova ağları arasında tam bir yazışma .

5 R. Milner, Süreç Olarak Fonksiyonlar .


1
re: ∀X tipi (X, (X) ↑) ↓ sakinlerinin sayısı hakkındaki görüşünüz. Pi-matematik için bir "serbest teoremler" analogu var mı? Varsa, bu nerede tartışılır?
Dominic Mulligan

1
Merhaba @DominicMulligan, evet "ücretsiz teoremler" var ve bunu biraz araştırdık [1, 2]. Bence bu yönde çok daha fazlası söylenebilir.
Martin Berger

1
@MartinBerger: Tipik pi-hesap için "doğru" süreç denkliği kavramının ne olduğunu anlamak için parametrikliği kullanabilir misiniz? Örneğin, Sistem F'de parametrik mantıksal ilişki, bağlamsal denkliğe karşılık gelir. Benzetme yoluyla, süreç denkliği kavramının pi-kalkülüs için parametrik mantıksal ilişkiye karşılık gelen ne olursa olsun özellikle ilginç olmasını beklerdim.
Neel Krishnaswami

@NeelKrishnaswami: Evet, bu ilginç bir soru. Bunu [2] 'de pi-hesabı gömme Sistem F için tamamen soyut olarak araştırdık ve sonuçları tam soyutlama kanıtı (örn. Tip bir bisimülasyon karakterizasyonu) içinde kullandık. Bunun daha genel olarak araştırıldığını sanmıyorum. Bir başlangıç ​​için sonsuz sayıda yazılan -calculi vardır. Ve güzel, deterministik yazılan parçalardan uzaklaştıkça, muhtemelen daha da zorlaşacaktır. Hemen hemen tüm eşzamanlı tip teorisi deterministik fragmanlar içindir. Geniş kapsamlı genellemeler yapmaya çalışmak büyüleyici olurdu. π
Martin Berger

Bisimülasyon temelli karakterizasyonlar pratik akıl yürütme için yararlıdır, çünkü tüm bağlamlarda kapanma gerektirmezler.
Martin Berger
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.