Wiem, że złożoność większości odmian kalkulatorów lambda bez prymitywu kombinatora Y jest ograniczona, tzn. Można wyrazić tylko funkcje o ograniczonej złożoności, przy czym granica staje się większa wraz ze wzrostem ekspresyjności systemu typów. Pamiętam, że np. Rachunek konstrukcji może wyrażać co najwyżej podwójnie wykładniczą złożoność.
Moje pytanie dotyczy tego, czy wpisane kalkulacje lambda mogą wyrażać wszystkie algorytmy poniżej określonej granicy złożoności, czy tylko niektóre? Np. Czy są jakieś algorytmy czasu wykładniczego niewyrażalne przez żaden formalizm w Kostce Lambda? Jaki jest „kształt” przestrzeni złożoności, która jest całkowicie pokryta różnymi wierzchołkami Kostki?
Odpowiedzi:
Dam częściową odpowiedź, mam nadzieję, że inni wypełnią puste pola.
W wpisany -calculi może podać typu ze zwykłymi reprezentacji danych ( N T dla Church (unarne) całkowitymi, S , T r ciągów binarnych B O o L o wartości logiczne) i dziwnego, co jest złożoność funkcji / problemy reprezentowalne / rozstrzygalne według wpisywanych terminów. Znam precyzyjną odpowiedź tylko w niektórych przypadkach, aw przypadku zwykłego typu zależy ona od konwencji użytej przy definiowaniu „reprezentowalne / rozstrzygalne”. W każdym razie nie znam żadnego przypadku, w którym górna granica jest podwójnie wykładnicza.λ Nat Str Bool
Najpierw krótkie podsumowanie kostki Lambda. Jego 8 obliczeń jest uzyskiwanych przez włączenie lub wyłączenie następujących 3 rodzajów zależności na podstawie po prostu wpisanego calculus (STLC):λ
(Zależność warunków od warunków jest zawsze obecna).
Dodawanie polimorfizmu rentowności systemu F. Tutaj można wpisać liczby całkowite kościół z i podobnie dla ciągów binarnych i boolean. Girard udowodnił, że pojęcia układu F typu N a t → N a t reprezentują dokładnie funkcje liczbowe, których suma jest możliwa do udowodnienia w arytmetyki Peano drugiego rzędu. To prawie codzienna matematyka (choć bez żadnej formy wyboru), więc klasa jest ogromna, funkcja Ackermanna jest rodzajem małego drobnoustroju, nie mówiąc już o funkcji 2 2Nat:=∀X.(X→X)→X→X Nat→Nat . Nie znam żadnej „naturalnej” funkcji numerycznej, która nie może być reprezentowana w Systemie F. Przykłady są zwykle budowane przez diagonalizację lub kodowanie spójności PA drugiego rzędu lub innych sztuczek samoreferencyjnych (takich jak decydowanie o jakościβw Systemie Sam F). Oczywiście w systemie F można konwertować między jednymi liczbami całkowitymiNati ich reprezentacją binarnąStr, a następnie przetestować na przykład, czy pierwszy bit ma wartość 1, a więc klasę rozstrzygalnych problemów (według typuStr→Bool) jest równie ogromny.22n β Nat Str Str→Bool
Pozostałe 3 obliczenia Kostki Lambda, które obejmują polimorfizm, są zatem co najmniej tak samo ekspresyjne jak System F. Obejmują one System F ω (polimorfizm + wyższy rząd), który może wyrażać dokładnie możliwe do udowodnienia funkcje całkowite w wyższym rzędzie PA oraz Rachunek Konstrukcje (CoC), który jest najbardziej ekspresyjnym rachunkiem kostki (wszystkie zależności są włączone). Nie znam charakterystyki wyrazistości CoC pod względem teorii arytmetycznych lub teorii teorii, ale musi to być dość przerażające :-)ω
Jestem znacznie bardziej nieświadomy, jeśli chodzi o rachunek różniczkowy uzyskany po prostu poprzez włączenie typów zależnych (zasadniczo teorii typów Martina-Löfa bez równości i liczb naturalnych), typów wyższego rzędu lub obu. W tych rachunkach typy są potężne, ale terminy nie mają dostępu do tej mocy, więc nie wiem, co otrzymujesz. Pod względem obliczeniowym nie wydaje mi się, abyś miał dużo większą ekspresję niż w przypadku prostych typów, ale mogę się mylić.
Pozostaje nam więc STLC. O ile mi wiadomo, jest to jedyny rachunek Kostki o interesujących (tj. Nie potwornie dużych) złożonościach górnych granic. Na TCS.SE jest pytanie bez odpowiedzi , a sytuacja jest nieco subtelna.
(To jest twierdzenie 3.4 w ich pracy).
(Nawiasem mówiąc, podzieliłem moje zdziwienie w tej odpowiedzi na pytanie MO dotyczące „nieznanych twierdzeń”).
źródło
Odpowiedź na pytanie postawione przez Damiana w doskonałej odpowiedzi:
Nie wiem, jaka jest siła rachunku impredykacyjnego konstrukcji, jeśli doda się typy indukcyjne i duże eliminacje.
źródło
Spróbuję uzupełnić doskonałą odpowiedź Damiano.
Zasadniczo jest to duża droga badań, więc odwołam się do jednej z moich wcześniejszych odpowiedzi .
źródło