System typu czystego

Nierozwiązany problem w informatyce :

Udowodnij lub obal hipotezę Barendregta–Geuversa–Klopa.

W gałęziach logiki matematycznej znanych jako teoria dowodu i teoria typów , system czystych typów ( PTS ), wcześniej znany jako uogólniony system typów ( GTS ), jest formą typowanego rachunku lambda , która pozwala na dowolną liczbę rodzajów i zależności między którekolwiek z nich. Schemat można postrzegać jako uogólnienie kostki lambda Barendregta w tym sensie, że wszystkie narożniki sześcianu można przedstawić jako instancje PTS z tylko dwoma rodzajami . Faktycznie Barendregt (1991) umieścił swoją kostkę w tej scenerii. Systemy typu czystego mogą przesłaniać rozróżnienie pomiędzy typy i terminy oraz zwijają hierarchię typów , jak ma to miejsce w przypadku rachunku konstrukcji , ale generalnie tak nie jest, np. po prostu wpisany rachunek lambda pozwala, aby tylko terminy były zależne od terminów.

Systemy typu czystego zostały wprowadzone niezależnie przez Stefano Berardi (1988) i Jana Terlouwa (1989). Barendregt omówił je szczegółowo w swoich kolejnych artykułach. W swojej pracy doktorskiej Berardi zdefiniował sześcian logiki konstrukcyjnej podobny do kostki lambda (te specyfikacje są niezależne). Modyfikacja tej kostki została później nazwana przez Geuversa kostką L, który w swojej pracy doktorskiej rozszerzył korespondencję Curry’ego – Howarda na to ustawienie. Opierając się na tych pomysłach, Barthe i inni zdefiniowali klasyczne systemy czystego typu ( CPTS ), dodając podwójną negację operator. Podobnie w 1998 r. Tijn Borghuis wprowadził modalne systemy czystego typu ( MPTS ). Roorda omówił zastosowanie systemów czystego typu do programowania funkcjonalnego ; a Roorda i Jeuring zaproponowali język programowania oparty na systemach czystych typów.

Wiadomo, że wszystkie układy z kostki lambda wykazują silne działanie normalizujące . Systemy typu czystego w ogóle nie muszą być, na przykład System U z paradoksu Girarda nie jest. (Z grubsza rzecz biorąc, Girard znalazł czyste systemy, w których można wyrazić zdanie „typy tworzą typ”.) Co więcej, wszystkie znane przykłady systemów czystych typów, które nie są silnie normalizujące, nie są nawet (słabo) normalizujące: zawierają wyrażenia , które nie mają postaci normalnych , podobnie jak rachunek lambda bez typu [ potrzebne źródło ] . Głównym otwartym problemem w tej dziedzinie jest to, czy zawsze tak jest, tj. czy (słabo) normalizujący PTS zawsze ma silną właściwość normalizacyjną. Jest to znane jako hipoteza Barendregta – Geuversa – Klopa (nazwana na cześć Henka Barendregta , Hermana Geuversa i Jana Willema Klopa ).

Definicja

System czystych typów jest zdefiniowany przez potrójną, gdzie jest zbiorem sortów, aksjomatów, to zbiór zasad. Pisanie w systemach czystych typów jest określone przez następujące zasady, gdzie jest to dowolny rodzaj:

Wdrożenia

Następujące języki programowania mają systemy typu czystego: [ potrzebne źródło ]

  • SZAŁWIA
  • Krwawnik
  • Henek 2000

Zobacz też

Notatki

  • Berardi, Stefano (1988). Ku matematycznej analizie rachunku konstrukcji Coquanda – Hueta i innych układów w kostce Barendregta (raport techniczny). Wydział Informatyki, CMU i Dipartimento Matematica, Universita di Torino. CMU-CS-88-131.
  • Terlouw, J. (1989). „Een nadere bewijstheoretische analiz van GSTT” (w języku niderlandzkim). Holandia: Uniwersytet w Nijmegen. {{ cite Journal }} : Cite Journal wymaga |journal= ( pomoc )

Dalsza lektura

Linki zewnętrzne