Esiste un calcolo lambda tipizzato che è coerente e Turing completo?


20

Esiste un calcolo lambda tipizzato in cui la logica corrispondente nella corrispondenza Curry-Howard è coerente e dove esistono espressioni lambda tipizzabili per ogni funzione calcolabile?

Questa è certamente una domanda imprecisa, mancante di una definizione precisa di "calcolo lambda tipizzato". Mi chiedo sostanzialmente se ci sono (a) esempi noti di questo, o (b) prove di impossibilità conosciute per qualcosa in quest'area.

Modifica: @cody fornisce una versione precisa di questa domanda nella sua risposta di seguito: esiste un sistema logico di tipo puro (LPTS) che è coerente e Turing completo (in un senso definito di seguito)?


2
Non esiste un calcolo ricorsivamente assiomatizzabile (lambda o altro) le cui funzioni ricorsive in totale dimostrazione sono tutte funzioni ricorsive, quindi il calcolo dovrebbe comprendere termini non terminanti.
Emil Jeřábek sostiene Monica il

2
Questa risposta ha un teorema che dice che non puoi avere alcun tipo di calcolo che sia completo e totale di Turing .
Andrej Bauer,

1
Probabilmente risponderà alla tua domanda una volta che la renderai sufficientemente precisa. Penso che la prova di Andrej sia inutilmente complicata (ma mostra di più): il punto è semplicemente che se esistesse un sistema efficacemente descritto in cui tutte le funzioni ricorsive fossero rappresentabili in modo tale da poter certificare sintatticamente che un'espressione è una rappresentazione onesta di un funzione ricorsiva (ad es., verificando che sia correttamente digitata nel sistema), si otterrebbe una funzione ricorsiva totale universale, che è impossibile.
Emil Jeřábek sostiene Monica il

1
Naturalmente una risposta classica a questo tipo di domanda potrebbe essere: typed -calculus con tipi di intersezione , poiché digita tutti (e solo quei) termini che sono fortemente normalizzati. È più una domanda filosofica porre se il calcolo ammetta o meno una "interpretazione di Curry-Howard". λ
cody

2
È difficile essere più precisi qui perché la domanda non è precisa.
Andrej Bauer,

Risposte:


21

Va bene, ci provo: in generale per un dato tipo di sistema , è vero quanto segue:T

Se tutti i termini ben scritti nel calcolo stanno normalizzando, allora è coerente se visto come una logica.TT

La prova generalmente procede assumendo che tu abbia un termine di tipo , usando la riduzione del soggetto per ottenere una forma normale, e quindi procedendo per induzione sulla struttura di un tale termine per ottenere una contraddizione.absurdFalse

È naturale chiedersi se il contrario vale, vale a dire

Per qualsiasi sistema di tipo , se è logicamente coerente , allora ogni termine ben scritto in sta normalizzando.T TTTT

Il problema è che non esiste una vera e propria nozione più generale di "sistema di tipo", e ancor meno un accordo sul significato di coerenza logica per tali sistemi. Tuttavia, possiamo verificarlo empiricamente

Per i sistemi di tipo più noti che hanno un'interpretazione logica, il contrario vale davvero.

Come si lega a Turing Completezza? Bene, per uno, se il controllo del tipo è decidibile , l'argomento di Andrej mostra che uno dei seguenti deve contenere:

  1. L'insieme di tutti i programmi ben scritti non è Turing Complete.
  2. Esiste un programma ben tipizzato non terminante.

Questo tende a suggerire che:

I sistemi di tipo che hanno un'interpretazione logica e sono coerenti e ricorsivamente enumerabili non sono Turing Complete.

Dare un teorema reale piuttosto che un suggerimento richiede di rendere matematicamente precisa la nozione di sistemi di tipo e interpretazioni logiche.

Ora mi vengono in mente due osservazioni:

  1. Esiste un sistema di tipo indecidibile , il sistema di tipo di intersezione che ha un'interpretazione logica e può rappresentare ogni termo normalizzante . Come hai notato, questo non è esattamente lo stesso di Turing Complete, poiché potrebbe essere necessario aggiornare il tipo di una funzione totale (perfezionata, in effetti) prima di applicarla all'argomento desiderato. Il calcolo è un calcolo di "stile curry" ed è uguale a STLC + Γ M : τλ e ΓM:τσ

    ΓM:τΓM:σΓM:τσ
    È chiaro che l '"interpretazione"=porta a un'interpretazione logica coerente.
    ΓM:τσΓM:τΓM:τσΓM:σ
    =
  2. Esiste una classe di sistemi di tipi, i sistemi di tipo puro , in cui una domanda del genere potrebbe essere precisata. In questo quadro, tuttavia, l'interpretazione logica è meno chiara. Si potrebbe essere tentati di dire: "un PTS è coerente se ha un tipo disabitato". Ma questo non funziona, poiché i tipi possono vivere in diversi "universi", dove alcuni potrebbero essere coerenti e altri no. Coquand e Herbelin definiscono una nozione di sistemi logici di tipo puro , in cui la domanda ha un senso e mostrano

    Ogni LPTS incoerente e non dipendente ha un combinatore di loop (e così anche Turing Complete)

    Che risponde alla domanda in una direzione (incoerente TC) in questo caso. Per quanto ne so, la domanda per LPTS generale è ancora aperta e piuttosto difficile.


Modifica: il contrario del risultato Coquand-Herbelin non è facile come pensavo! Ecco cosa mi è venuto in mente finora.

Un sistema logico di tipo puro è un PTS con (almeno) i tipi e T y p e , (almeno) l'assioma P r o p : T y p e e (almeno) la regola ( P r o p , P r o p , P r o p ) , con l'ulteriore requisito che non vi siano tipi di tipo P r o p .PropTypeProp:Type(Prop,Prop,Prop)Prop

Ora assumerò una particolare dichiarazione di completezza di Turing: sistemare un LPTS e lasciare che Γ sia il contestoLΓ

Γ=nat:Prop, 0:nat, S:natnat

èTuring Completeiff per ogni funzione calcolabile totale f : NN esiste un termine t f tale che Γ t f : n a tn a t e per ogni n N t f ( S n 0 ) β S f ( n ) 0Lf:NNtf

Γtf:natnat
nN
tf (Sn 0)βSf(n) 0

Ora l'argomento della diagonalizzazione di Andrej mostra che ci sono di tipo n a t non terminanti .tnat

Γloop:nun'tnatA0SΓAA:Prop

S0


λx.xx

Ora una domanda sulla tua osservazione (2). Mi sembra che il teorema che citi non è ciò a cui siamo interessati. Dice che per ogni LPTS non dipendente, se è incoerente, allora è Turing completo. Ma vorremmo sapere se per ogni LPTS, se è Turing completo, allora è incoerente. Sto fraintendendo qualcosa qui?
Morgan Thomas,

Γ,t,AΓt:A

Il secondo punto: hai anche ragione a dire che si può avere una funzione non totale ben tipizzata (anche se non si può necessariamente applicarla a un dato argomento). Modificherò la risposta.
cody

1
Terzo punto Hai di nuovo ragione! Tuttavia, il contrario (nel caso speciale di LPTS) è piuttosto banale. Descriverò l'argomento.
cody

11

β

λnat,0,S

nat:
0:nat
S:natnat

efefe:natnate,xNβ

fe(x)βΦe(x),

Φe(x)exΦe(x)ββ

Ora, questa teoria è chiaramente completa di Turing nel senso approssimativamente di @ cody, proprio con la forza bruta; ma l'affermazione è che è anche coerente. Costruiamone un modello.

U1U2U3

  • ,N,0,SU1S
  • abUiaUi
  • A,BUiBAUi
  • AUif:AUiaAf(a)Ui

Ui

vU2vIv

  • Iv(x)=v(x)x
  • iov(*)=U1,iov()=U2
  • iov(nat)=N,iov(0)=0,iov(S)=S
  • iov(fe)=ΦeNNe
  • iov(UNB)=iov(UN)(iov(B))iov(UN)iov(B)iov(UNB)=0
  • Iv(λx:A.B)aIv(A)Iv[x:=a](B)
  • Iv(Πx:A.B)=aIv(A)Iv[x:=a](B)

AIv(A)U3vA:BvA:BIv(A)Iv(B)ΓA:Bvvx:C(x:C)ΓvA:B

ΓA:BΓA:Bx,yy:x:yy

β


2
Afe(x)Φe(x)ιββfe(x)ιβ

Penso tu abbia ragione. Questo non è il mio campo, quindi sono un po 'goffo nel fare le cose. :-) Penso che la tua prova funzioni, e una conseguenza interessante, se ho ragione, è che questa teoria non ha molta forza di coerenza. Sembra una teoria potenzialmente molto potente, poiché ha tipi e numeri naturali, che dovrebbero permetterti di interpretare la teoria degli insiemi; ma a quanto pare non puoi, perché puoi dimostrarlo coerente senza usare una potente teoria degli insiemi!
Morgan Thomas,
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.