Czy istnieje typowany rachunek lambda, w którym odpowiednia logika w korespondencji Curry-Howarda jest spójna i gdzie istnieją możliwe do wpisania wyrażenia lambda dla każdej funkcji obliczeniowej?
Jest to wprawdzie pytanie nieprecyzyjne, pozbawione precyzyjnej definicji „typowanego rachunku lambda”. Zastanawiam się, czy istnieją (a) znane przykłady tego, lub (b) znane dowody niemożności dla czegoś w tej dziedzinie.
Edycja: @cody podaje dokładną wersję tego pytania w swojej odpowiedzi poniżej: czy istnieje logiczny system czystego typu (LPTS), który jest spójny i Turinga kompletny (w sensie zdefiniowanym poniżej)?
type-theory
lambda-calculus
typed-lambda-calculus
curry-howard
Morgan Thomas
źródło
źródło
Odpowiedzi:
W porządku, poddam się temu: ogólnie dla danego systemu typów , prawda jest następująca:T.
Dowodem na ogół prowadzi się przy założeniu, że trzeba termin b Ś U r d typu F danej ł s e , poprzez redukcję z zastrzeżeniem uzyskania postaci normalnej, a następnie przebiega przez indukcję o strukturze takiej perspektywie się sprzeczność.a b s u r d F a l s e
Naturalne jest zastanawianie się, czy rozmowa się utrzymuje, tj
Problem polega na tym, że nie ma tak naprawdę najbardziej ogólnego pojęcia „systemu typów”, a tym bardziej nie jest zgodna co do znaczenia logicznej spójności dla takich systemów. Możemy jednak empirycznie to zweryfikować
W jaki sposób łączy się to z Turing Completeness? Cóż, po pierwsze, jeśli sprawdzanie typu jest rozstrzygalne , to argument Andreja pokazuje, że jedno z poniższych musi być spełnione :
Sugeruje to, że:
Podanie faktycznego twierdzenia zamiast sugestii wymaga doprecyzowania matematycznego pojęcia systemów typów i interpretacji logicznych.
Teraz przychodzą mi na myśl dwie uwagi:
Istnieje nierozstrzygalny system typów, system typów skrzyżowań, który ma logiczną interpretację i może reprezentować każdy normalizujący termin . Jak zauważyłeś, nie jest to dokładnie to samo, co ukończenie Turinga, ponieważ typ funkcji totalnej może wymagać aktualizacji (dopracowania) przed zastosowaniem jej do żądanego argumentu. Rachunek ten jest rachunkiem „w stylu curry'ego” i jest równy STLC + Γ ⊢ M : τλ
i
Γ⊢M:τ∩σ
Istnieje klasa systemów typów, Pure Type Systems , w których takie pytanie można by sprecyzować. W tych ramach logiczna interpretacja jest jednak mniej jasna. Można pokusić się o stwierdzenie: „PTS jest spójny, jeśli ma niezamieszkany typ”. Ale to nie działa, ponieważ typy mogą żyć w różnych „wszechświatach”, gdzie niektóre mogą być spójne, a inne nie. Coquand i Herbelin definiują pojęcie logicznych systemów typu czystego , w którym pytanie ma sens i pokazują
Który odpowiada na pytanie w jednym kierunku (niespójne TC) w tym przypadku. O ile mi wiadomo, pytanie dotyczące ogólnego LPTS jest nadal otwarte i dość trudne.⇒
Edycja: Odwrotność wyniku Coquand-Herbelin nie jest tak łatwa, jak myślałem! Oto, co do tej pory wymyśliłem.
Logiczny Czysty Typ systemu jest PTS z (co najmniej) rodzaje i T y p e (co najmniej) Aksjomat p r o p : T y p e i (przynajmniej) zasada ( P r o p , P r o p , P r o p ) , z dalszym wymogiem, że nie ma rodzajów P r o p .P r o p T y p e P r o p : t y p e (Prop,Prop,Prop) Prop
Teraz przyjmuję szczególne stwierdzenie o kompletności Turinga: napraw LPTS i niech Γ będzie kontekstemL Γ
oznaczaTuringa Całkowiteiff dla każdej całkowitej obliczalnej funkcji f : N → N istnieje termin t f taki, że Γ ⊢ t f : n a t → n a t i dla każdego n ∈ N t f ( S n 0 ) → ∗ β S f ( n ) 0L f:N→N tf
Argument diagonalizacji Andreja pokazuje teraz, że nie ma końcówki typu n a tt n a t .
Teraz wydaje się, że jesteśmy w połowie drogi! Biorąc pod uwagę nie kończący się termin , chcemy zastąpić wystąpienia n a t jakimś ogólnym typem A i pozbyć się 0 i S w Γ , i będziemy mieć naszą niespójność ( A jest zamieszkały w kontekście A : P r o pΓ ⊢ l o o p : n a t n a t ZA 0 S. Γ ZA Odp . : P r o p )!
Niestety utknąłem w tym miejscu, ponieważ łatwo jest zastąpić literę tożsamością, ale zero jest znacznie trudniejsze do usunięcia. Idealnie chcielibyśmy skorzystać z jakiegoś twierdzenia o rekurencji Kleene'a, ale jeszcze tego nie rozgryzłem.S. 0
źródło
Oto odpowiedź na wariant precyzji @ cody mojego pytania. Istnieje spójny LPTS, który Turing kończy w sensie z grubsza @ cody, jeśli pozwolimy na wprowadzenie dodatkowych aksjomatów i reguł redukcji . Zatem ściśle mówiąc, system nie jest LPTS; jest to po prostu coś w rodzaju jednego.β
Zastanów się nad rachunkiem konstrukcji (lub swoim ulubionym członkiem kostki ). To jest LPTS, ale dodamy dodatkowe rzeczy, które sprawiają, że nie jest to LPTS. Wybierz stałe symbole nat , 0 , S i dodaj aksjomaty:λ nat,0,S
⊢ 0 : nat ⊢ S : nat → nat
Indeks Turinga programy maszynowe według liczb naturalnych, a dla każdej liczby naturalnej wybrać symbol stałej f e , dodać aksjomat f e : nat → NAT , a dla wszystkich e , x ∈ N , dodaj p regułę -redukcjae fe fe:nat→nat e,x∈N β
gdzie normalnie ma wyjście E XX Turingowi programu maszyny o x . Jeśli Φ e ( x ) różni się wówczas reguła ta nie robi nic. Zauważ, że dodając te aksjomaty i reguły, twierdzenia systemu pozostają rekurencyjnie policzalne, chociaż jego zestaw reguł redukcji β nie jest już rozstrzygalny, a jedynie rekurencyjnie policzalny. Wierzę, że moglibyśmy z łatwością zachować zestaw βΦe(x) e x Φe(x) β β porządku reguł redukcji poprzez wyraźne określenie szczegółów modelu obliczeniowego w składni i regułach systemu.
Teraz teoria ta jest całkowicie ukończona w sensie z grubsza @ cody, tylko brutalną siłą; ale twierdzenie jest takie, że jest również spójne. Stwórzmy jego model.
Niech będą trzema zestawami, takimi, że:U1∈U2∈U3
Łatwo jest sprawdzić, czyΓ ⊢ A : B , następnie Γ ⊨ A : B , więc jest to model systemu. Ale dla dowolnych zmiennychx , y , tak nie jest y: ∗ ⊨ x : y , ponieważ możemy interpretować y przez ∅ , więc system jest spójny.
To jest odpowiedź na moje pierwotne pytanie, w tym sensie, że rozsądnie jest nazywać kalulus na maszynie, który jest spójny i Turinga kompletny. Nie jest to jednak odpowiedź na pytanie @ cody, ponieważ nie jest to LPTS, ponieważ dodano dodatkowe aksjomaty iβ zasady redukcji. Wyobrażam sobie, że odpowiedź na pytanie @ cody jest znacznie trudniejsza.
źródło