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.λNatStrBool
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):λ
- polimorfizm : warunki mogą zależeć od typów;
- typy zależne : typy mogą zależeć od warunków;
- wyższa kolejność : typy mogą zależeć od typów.
(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→XNat→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βNatStrStr→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.
XNat:=(X→X)→X→XNat→NatXNat[A]→NatANat[A]→Nat[A′]→Nat
MNat[A]→BoolAMnM
22⋮2n,
StrMM
CSTStr[A]→BoolACSTCST⊊LINTIMELINTIME∖CST
CST
CST=REG{0,1}
(To jest twierdzenie 3.4 w ich pracy).
CSTLINTIMEλCST
(Nawiasem mówiąc, podzieliłem moje zdziwienie w tej odpowiedzi na pytanie MO dotyczące „nieznanych twierdzeń”).