Endüktif tip - Inductive type - Wikipedia

İçinde tip teorisi bir sistemde endüktif tipler sabitler ve bu türden terimler oluşturan işlevlerle birlikte yeni bir tür oluşturma olanaklarına sahipse. Özellik, şuna benzer bir role hizmet eder: veri yapıları bir programlama dilinde ve bir tür teorisinin aşağıdaki gibi kavramlar eklemesine izin verir: sayılar, ilişkiler, ve ağaçlar. Adından da anlaşılacağı gibi, endüktif tipler kendi kendine referans olabilir, ancak genellikle sadece izin verecek şekilde yapısal özyineleme.

Standart örnek, kodlama doğal sayılar kullanma Peano'nun kodlaması.

 Endüktif nat : Tür :=   | 0 : nat   | S : nat -> nat.

Burada, "0" sabitinden veya "S" fonksiyonunu başka bir doğal sayıya uygulayarak bir doğal sayı oluşturulur. "S" ardıl işlevi bu, bir sayıya 1 eklemeyi temsil eder. Bu nedenle, "0" sıfırdır, "S 0" birdir, "S (S 0)" ikidir, "S (S (S 0))" üçtür, vb.

Girişlerinden bu yana, endüktif tipler daha fazla yapıyı kodlamak için genişletildi, öngörücü ve yapısal özyinelemeyi desteklemek.

Eliminasyon

Endüktif tipler genellikle kendileriyle ilgili özellikleri kanıtlama işleviyle birlikte gelir. Böylece, "nat" şununla gelebilir:

 nat_elim : (hepsi için P : nat -> Prop, (P 0) -> (hepsi için n, P n -> P (S n)) -> (hepsi için n, P n)).

Bu, "nat" türü için yapısal özyineleme için beklenen işlevdir.

Uygulamalar

W ve M türleri

W türleri sağlam temelli türler sezgisel tip teorisi (ITT).[1] Doğal sayıları, listeleri, ikili ağaçları ve diğer "ağaç biçimli" veri türlerini genelleştirir. İzin Vermek U olmak türlerin evreni. Bir tür verildiğinde Bir : U ve bir bağımlı aile B : BirU, biri W tipi oluşturabilir . Tip Bir tanımlanmakta olan endüktif tipin (potansiyel olarak sonsuz sayıda) kurucuları için "etiketler" olarak düşünülebilir, oysa B (potansiyel olarak sonsuz) derece her kurucunun. W-türleri (ya da M-türleri), aynı zamanda, elemanlar tarafından etiketlenmiş düğümleri olan iyi kurulmuş (ya da sağlam olmayan) ağaçlar olarak da anlaşılabilir. a : Bir ve düğümün etiketlendiği yer a vardır B(a) -birçok alt ağaç.[2] Her W-tipi, sözde bir sözde ilk cebir için izomorfiktir. polinom işlevcisi.

İzin Vermek 0, 1, 2vb. sakinleri olan sonlu tipler 11 : 1, 12, 22:2, vb. Doğal sayılar W-tipi olarak tanımlanabilir.

ile f : 2U tarafından tanımlanır f(12) = 0 (sıfır için yapıcıyı temsil eder, bağımsız değişken almaz) ve f(22) = 1 (bir bağımsız değişken alan ardıl işlevi temsil eder).

Listeler bir tür üzerinden tanımlanabilir Bir : U gibi nerede

ve 11 tek sakini 1. Değeri boş liste için yapıcıya karşılık gelirken, değeri ekleyen kurucuya karşılık gelir a başka bir listenin başına.

Genel bir W-tipinin elemanları için yapıcı türü var

Bu kuralı bir stilinde de yazabiliriz. doğal kesinti kanıt,

W türleri için eleme kuralı, şuna benzer şekilde çalışır: yapısal indüksiyon ağaçlarda. Eğer, ne zaman bir mülk (altında tür olarak önermeler yorum) belirli bir ağacın tüm alt ağaçları için, o ağaç için de tutar, sonra tüm ağaçlar için tutar.

Genişlemeli tip teorilerde, W-türleri (ve M-türleri), izomorfizm gibi ilk cebirler (ilgili son kömürgebralar) için polinom functors. Bu durumda, başlangıç ​​özelliği (kesinlik) doğrudan uygun tümevarım ilkesine karşılık gelir.[3] İçsel tip teorilerinde tek değerli aksiyom, bu yazışma homotopi (önermesel eşitlik) kadar geçerlidir.[4][5][6]

M türleri çift W tiplerine göre temsil ederler ortak indüktif (potansiyel olarak sonsuz) veriler, örneğin Canlı Yayınlar.[7] M türleri, W türlerinden türetilebilir.[8]

Karşılıklı endüktif tanımlar

Bu teknik sağlar biraz birbirine bağlı birden çok türün tanımları. Örneğin, iki eşitlik üzerinde tahminler doğal sayılar iki karşılıklı endüktif türü kullanarak Coq:

Endüktif hatta : nat -> Prop :=  | zero_is_even : hatta Ö  | S_of_odd_is_even : (hepsi için n:nat, garip n -> hatta (S n))ile garip : nat -> Prop :=  | S_of_even_is_odd : (hepsi için n:nat, hatta n -> garip (S n)).

Tümevarım-özyineleme

Tümevarım-özyineleme ITT'nin sınırlarına yönelik bir çalışma olarak başladı. Bir kez bulunduktan sonra, sınırlar yeni endüktif türlerin tanımlanmasına izin veren kurallara dönüştürüldü. Bu türler, her ikisi de aynı anda tanımlandığı sürece bir işleve ve türe bağlı işleve bağlı olabilir.

Evren türleri tümevarım-özyineleme kullanılarak tanımlanabilir.

İndüksiyon indüksiyonu

İndüksiyon indüksiyonu aynı anda bir tip ve bir tip ailesinin tanımlanmasına izin verir. Yani bir tür Bir ve bir tür aile .

Daha yüksek endüktif tipler

Bu güncel bir araştırma alanıdır. Homotopi Tipi Teorisi (HoTT). HoTT, kimlik türü (eşitlik) açısından ITT'den farklıdır. Daha yüksek endüktif tipler, sadece tipin unsurlarını oluşturan sabitler ve fonksiyonlarla yeni bir tipi tanımlamakla kalmaz, aynı zamanda bunları ilişkilendiren kimlik tipinin yeni örneklerini de tanımlar.

Basit bir örnek, daire iki yapıcıyla tanımlanan tür, bir temel nokta;

temel : daire

ve bir döngü;

döngü : temel = temel.

Kimlik türü için yeni bir kurucunun varlığı, daire daha yüksek bir endüktif tip.

Ayrıca bakınız

Referanslar

  1. ^ Martin-Löf, Per (1984). Sezgisel tip teorisi (PDF). Sambin, Giovanni. Napoli: Bibliopolis. ISBN  8870881059. OCLC  12731401.
  2. ^ Ahrens, Benedikt; Capriotti, Paolo; Spadotti, Régis (2015/04/12). "Homotopi Tipi Teorisinde Bulunmayan Ağaçlar". arXiv:1504.02949. doi:10.4230 / LIPIcs.TLCA.2015.17. Alıntı dergisi gerektirir | günlük = (Yardım)
  3. ^ Dybjer, Peter (1997). "Tümevarımlı olarak tanımlanmış kümeleri Martin-Löf'ün tip teorisinde iyi sıralama ile temsil etme". Teorik Bilgisayar Bilimleri. 176 (1–2): 329–335. doi:10.1016 / s0304-3975 (96) 00145-4.
  4. ^ Awodey, Steve; Gambino, Nicola; Sojakova, Kristina (2012-01-18). "Homotopi tip teorisinde endüktif tipler". arXiv:1201.3898 [math.LO ].
  5. ^ Ahrens, Benedikt; Capriotti, Paolo; Spadotti, Régis (2015/04/12). "Homotopi Tipi Teorisinde Bulunmayan Ağaçlar". arXiv:1504.02949. doi:10.4230 / LIPIcs.TLCA.2015.17. Alıntı dergisi gerektirir | günlük = (Yardım)
  6. ^ Awodey, Steve; Gambino, Nicola; Sojakova, Kristina (2015/04/21). "Tip teorisinde homotopi-başlangıç ​​cebirleri". arXiv:1504.05531 [math.LO ].
  7. ^ van den Berg, Benno; Marchi, Federico De (2007). "Kategorilere ayrılmış sağlam olmayan ağaçlar". Saf ve Uygulamalı Mantığın Yıllıkları. 146 (1): 40–59. arXiv:matematik / 0409158. doi:10.1016 / j.apal.2006.12.001.
  8. ^ Abbott, Michael; Altenkirch, Thorsten; Ghani, Neil (2005). "Kapsayıcılar: Kesinlikle olumlu türler oluşturmak". Teorik Bilgisayar Bilimleri. 342 (1): 3–27. doi:10.1016 / j.tcs.2005.06.002.

Dış bağlantılar