I calcoli lambda digitati possono esprimere * tutti * gli algoritmi al di sotto di una data complessità?


21

So che la complessità della maggior parte delle varietà di calcoli lambda tipizzati senza la primitiva del combinatore Y è limitata, cioè solo le funzioni di complessità limitata possono essere espresse, con il limite che diventa più grande man mano che l'espressività del sistema di tipi cresce. Ricordo che, ad esempio, il Calcolo delle costruzioni può esprimere al massimo doppiamente la complessità esponenziale.

La mia domanda riguarda se i calcoli lambda digitati possono esprimere tutti gli algoritmi al di sotto di un certo limite di complessità, o solo alcuni? Ad esempio, ci sono algoritmi a tempo esponenziale non espressi da alcun formalismo nel Lambda Cube? Qual è la "forma" dello spazio complesso che è completamente coperto da diversi vertici del Cubo?


Penso che la risposta sia sì: possiamo esprimere la macchina di Turing universale a tempo limitato.
Kaveh,

3
Sei sicuro del limite superiore doppiamente esponenziale? Se non ricordo male, il CoC è la più espressiva "corner" della Lambda Cube, il che significa che comprende (vale a dire il sistema polimorfico F λ -calcolo), che va così al di là doppiamente esponenziale ... In ogni caso, la risposta è sicuramente sì , vedi ad esempio la mia risposta qui . Posso pubblicare una risposta più dettagliata se vuoi.
Damiano Mazza,

1
Siamo spiacenti, ho letto male la tua domanda, non si sta chiedendo alcune digitato λ -calculi ma in particolare sulla tipizzato λ -calculi del Lambda Cube. Temo che non vi sia alcuna complessità interessante, sono tutti troppo espressivi, anche se conosco la risposta precisa solo per System F e System F ω . ω
Damiano Mazza,

4
La funzione di Ackermann può essere espressa nel calcolo delle costruzioni, quindi non può essere giusto che uno sia doppiamente esponenziale.
Andrej Bauer,

Penso di averlo letto nel libro di Coq'Art, ma probabilmente mi sbaglio. Grazie!
jkff,

Risposte:


19

Darò una risposta parziale, spero che altri riempiranno gli spazi vuoti.

In digitato -calculi, si può dare un tipo di rappresentazioni abituali di dati ( N una t per la Chiesa (unari) numeri interi, S t r per le stringhe binarie, B o o l per Booleans) e mi chiedo qual è la complessità delle funzioni / problemi rappresentabili / decidibili con termini digitati. Conosco una risposta precisa solo in alcuni casi, e nel caso tipicamente tipato dipende dalla convenzione utilizzata nella definizione di "rappresentabile / decidibile". Comunque, non conosco nessun caso in cui vi sia un limite superiore doppiamente esponenziale.λNun'tStrBool

Innanzitutto, un breve riepilogo sul Lambda Cube. I suoi 8 calcoli sono ottenuti abilitando o disabilitando i seguenti 3 tipi di dipendenze in cima al calcolo tipizzato semplicemente (STLC):λ

  • polimorfismo : i termini possono dipendere dai tipi;
  • tipi dipendenti : i tipi possono dipendere dai termini;
  • ordine superiore : i tipi possono dipendere dai tipi.

(La dipendenza dei termini dai termini è sempre lì).

L'aggiunta di polimorfismo rendimenti Sistema F. Qui, è possibile digitare i numeri interi chiesa con e similmente per stringhe binarie e booleani. Girard ha dimostrato che i termini del Sistema F di tipo N a tN a t rappresentano esattamente le funzioni numeriche la cui totalità è dimostrabile nell'aritmetica di Peano del secondo ordine. È praticamente la matematica di tutti i giorni (anche se senza alcuna forma di scelta), quindi la classe è enorme, la funzione Ackermann è una sorta di minuscolo microbo, per non parlare della funzione 2 2Nun't: =X.(XX)XXNun'tNun't . Non conosco alcuna funzione numerica "naturale" che non può essere rappresentata nel Sistema F. Gli esempi di solito sono costruiti dalla diagonalizzazione, o codificando la consistenza della PA del secondo ordine, o altri trucchi autoreferenziali (come decidere l'uguaglianzaβall'interno del Sistema F stessa). Naturalmente nel Sistema F è possibile convertire tra numeri interi unariNate la loro rappresentazione binariaStr, quindi verificare ad esempio se il primo bit è 1, quindi la classe di problemi decidibili (in base al tipoStr rBool) è ugualmente enorme.22nβNun'tStrStrBool

Gli altri 3 calcoli del Cubo Lambda che includono il polimorfismo sono quindi almeno espressivi come il Sistema F. Questi includono il Sistema F ω (polimorfismo + ordine superiore), che può esprimere esattamente le funzioni complessivamente dimostrabili in ordine superiore PA, e il calcolo di Costruzioni (CoC), che è il calcolo più espressivo del cubo (tutte le dipendenze sono abilitate). Non conosco una caratterizzazione dell'espressività del CoC in termini di teorie aritmetiche o teorie fisse, ma deve essere piuttosto spaventoso :-)ω

Sono molto più ignorante per quanto riguarda i calcoli ottenuti semplicemente abilitando tipi dipendenti (essenzialmente teoria dei tipi di Martin-Löf senza uguaglianza e numeri naturali), tipi di ordine superiore o entrambi. In questi calcoli, i tipi sono potenti ma i termini non possono accedere a questo potere, quindi non so cosa ottieni. Computazionalmente, non penso che tu abbia molta più espressività rispetto ai tipi semplici, ma potrei sbagliarmi.

Quindi siamo rimasti con l'STLC. Per quanto ne so, questo è l'unico calcolo del Cubo con limiti superiori di complessità interessanti (cioè non mostruosamente grandi). C'è una domanda senza risposta al riguardo su TCS.SE, e in effetti la situazione è un po 'sottile.

Innanzitutto, se aggiusti un atomo e definisci N a t : = ( X X ) X X , c'è il risultato di Schwichtenberg (so che c'è una traduzione inglese di quel documento da qualche parte sul web ma non riesco a trovarlo ora) che ti dice che le funzioni di tipo N a tN a t sono esattamente i polinomi estesi (con if-then-else). Se si consente un certo "gioco", ovvero si consente di istanziare il parametro X a piacimento e si considerano i termini di tipo N a t [XNun't: =(XX)XXNun'tNun'tX con A arbitrario, molto di più può essere rappresentato. Ad esempio, qualsiasi torre di esponenziali (quindi puoi andare ben oltre doppiamente esponenziale) così come la funzione precedente, ma ancora nessuna sottrazione (se consideri le funzioni binarie e provi a digitarle con N a t [ A ] N a t [ A ] N a t ). Quindi la classe di funzioni numeriche rappresentabile nell'STLC è un po 'strana, è un sottoinsieme rigoroso delle funzioni elementari ma non corrisponde a qualcosa di ben noto.Nun't[UN]Nun'tUNNun't[UN]Nun't[UN']Nun't

In evidente contraddizione con quanto sopra, c'è questo articolo di Mairson che mostra come codificare la funzione di transizione di una macchina di Turing arbitraria , da cui si ottiene un termine di tipo N a t [ A ] B o o l (per qualche tipo A a seconda di M ) che, dato un intero di Chiesa n come input, simula l'esecuzione di M a partire da una configurazione iniziale fissa per un numero di passaggi della forma 2 2 2 n ,MNun't[UN]BoolUNMnM

222n,
con l'altezza della torre fissa. Questo non mostra che ogni problema elementare sia risolvibile dallo STLC, perché nello STLC non c'è modo di convertire una stringa binaria (di tipo ) che rappresenta l'input di M nel tipo usato per rappresentare le configurazioni di M in La codifica di Mairson. Quindi la codifica è in qualche modo "non uniforme": è possibile simulare esecuzioni elementalmente lunghe da un input fisso, usando un termine distinto per ciascun input, ma non esiste un termine che gestisca input arbitrari.StrMM

In effetti, lo STLC è estremamente debole in ciò che può decidere "uniformemente". Chiamiamo la classe di lingue decidibile con termini tipizzati di tipo S t r [ A ] B o o l per alcuni A (come sopra, si consente "slack" arbitrario nella digitazione). Per quanto ne so, manca una precisa caratterizzazione di C S T. Tuttavia, sappiamo che C S TL I N T I M ECSTStr[UN]BoolUNCSTCSTLioNTioME(tempo lineare deterministico). Sia il contenimento che il fatto che sia rigoroso possono essere dimostrati da argomenti semantici molto accurati (usando la semantica denotazionale standard dell'STLC nella categoria di insiemi finiti). Il primo è stato mostrato di recente da Terui . Quest'ultimo è essenzialmente una riformulazione dei vecchi risultati di Statman. Un esempio di problema in è MAJORITY (data una stringa binaria, indica se contiene rigorosamente più 1s che 0s).LioNTioMECST


(Molto) Successivamente aggiuntivo: ho scoperto che la classe chiamo sopra in realtà non ha una precisa caratterizzazione, peraltro estremamente semplice. In questo bellissimo documento del 1996 , Hillebrand e Kanellakis lo dimostrano, tra l'altro, cheCST

Teorema. (le lingue normali su { 0 , 1 } ).CST=REsol{0,1}

(Questo è il Teorema 3.4 nel loro documento).

Lo trovo doppiamente sorprendente: sono sorpreso dal risultato stesso (non mi è mai venuto in mente che potesse corrispondere a qualcosa di così "pulito") e da quanto poco conosciuto. È anche divertente che la prova di Terui del limite superiore di L I N T I M E utilizzi gli stessi metodi impiegati da Hillebrand e Kanellakis (interpretando il λ -calculus tipicamente tipizzato nella categoria di insiemi finiti). In altre parole, Terui (e me stesso) avrebbe potuto facilmente riscoprire questo risultato se non fosse per il fatto che in qualche modo eravamo contenti che C S T fosse una classe "strana" :-)CSTLioNTioMEλCST

(Per inciso, ho condiviso la mia sorpresa in questa risposta a una domanda MO sui "teoremi sconosciuti").


3
Ho finito di leggere la risposta solo per vedere quel nome ancora una volta. Penso che tu mi abbia già insegnato più dei miei professori. Internet è una cosa meravigliosa. Grazie.
MaiaVictor,

@Damiano Mazza. Mi è piaciuta la tua risposta, ma la nozione di "uniformità" non è così banale, no?
Andrea Asperti

Ciao @Andrea, grazie. "Uniformità" qui è solo il fatto che tu decida una lingua usando un singolo programma funzionando per tutti i possibili input, invece di decidere una lingua per mezzo di una famiglia infinita di programmi, ognuno dei quali funziona solo su input di una lunghezza fissa (o, peggio, un programma per ogni input, come nel documento di Mairson). L'uniformità è la norma nel calcolo (i termini λ sono troppo potenti per essere utilizzati per approcci non uniformi, a meno che non si considerino restrizioni come linearità / affinità), quindi in un certo senso è "banale". Ma forse non capisco il tuo commento ...λλ
Damiano Mazza

12

Una risposta a una domanda che Damiano ha sollevato nella sua eccellente risposta:

Sono molto più ignorante per quanto riguarda i calcoli ottenuti semplicemente abilitando tipi dipendenti (essenzialmente teoria dei tipi di Martin-Löf senza uguaglianza e numeri naturali), tipi di ordine superiore o entrambi. In questi calcoli, i tipi sono potenti ma i termini non possono accedere a questo potere, quindi non so cosa ottieni.

L'aggiunta di tipi dipendenti non modifica la forza di coerenza della teoria. I tipi dipendenti semplici hanno la stessa forza di coerenza della lambda tipizzata in modo semplice e il calcolo delle costruzioni ha la stessa forza di coerenza del Sistema F ω .ω

In effetti, la pura teoria dei tipi di Martin-Löf ( nel cubo lambda) non può dimostrare che 0 = 1 implica falso. Per fare questo, hai bisogno di almeno un universo - e gli universi aumentano giganticamente la forza della teoria. Il calcolo delle costruzioni induttive (approssimativamente parlando, λ P ω più tipi induttivi più numerosi universi) è uguale nella forza di coerenza dello ZFC con molti cardinali inaccessibili.λPλPω

Non so quale sia la forza del calcolo impredicativo delle costruzioni, se aggiungi tipi induttivi e grandi eliminazioni.


Grazie @Neel! Immagino che ora abbiamo il quadro completo.
Damiano Mazza,

7

Proverò a completare l'eccellente risposta di Damiano.

λF HUN2

TLTL

L

  • FHUN2

  • TPUNF

λPTioME

In generale questa è una grande strada di ricerca, quindi mi limiterò a fare riferimento a una delle mie precedenti risposte .


3
Cf. " Interpretazione funzionale dell'aritmetica costruttiva costruttiva " di Stephen Cook e Alasdair Urquhart , 1993, per una variante teorica della complessità.
Kaveh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.