Esiste un sistema simile al calcolo lambda che si sta fortemente normalizzando, senza la necessità di aggiungere un sistema di tipi sopra di esso?
Esiste un sistema simile al calcolo lambda che si sta fortemente normalizzando, senza la necessità di aggiungere un sistema di tipi sopra di esso?
Risposte:
Mi vengono in mente alcune possibili risposte provenienti dalla logica lineare.
Il più semplice è il lambda-calcolo affine: considera solo i termini lambda in cui ogni variabile appare al massimo una volta. Questa condizione è preservata dalla riduzione ed è immediato vedere che la dimensione dei termini affini diminuisce rigorosamente ad ogni passo di riduzione. Pertanto, il lambda-calcolo affine non tipizzato si sta fortemente normalizzando.
Esempi più interessanti (in termini di espressività) sono dati dai cosiddetti lambda-calcoli "leggeri", derivanti dai sottosistemi di logica lineare introdotti da Girard in "Light Linear Logic" (Informazione e calcolo 143, 1998). come "Soft Linear Logic" di Lafont (Theoretical Computer Science 318, 2004). Ci sono molti di questi calcoli in letteratura, forse un buon riferimento è "Calcolo lambda leggero affine e forte normalizzazione del tempo polinomiale" (Archive for Mathematical Logic 46, 2007). In quel documento, Terui definisce un lambda-calcolo derivato dalla logica affine della luce e dimostra un forte risultato di normalizzazione per esso. Anche se i tipi sono menzionati nel documento, non vengono utilizzati nella prova di normalizzazione. Sono utili per una formulazione accurata della proprietà principale della lambda-calcolo affine alla luce, vale a dire che i termini di un certo tipo rappresentano esattamente le funzioni di Polytime. Risultati simili sono noti per il calcolo elementare, usando altri lambda-calcoli "leggeri" (il documento di Terui contiene ulteriori riferimenti).
Come nota a margine, è interessante osservare che, in termini teorico-dimostrativi, il lambda-calcolo affine corrisponde alla logica intuizionista senza la regola della contrazione. Grishin osservò (prima dell'introduzione della logica lineare) che, in assenza di contrazione, la teoria degli insiemi ingenui (cioè, con comprensione illimitata) è coerente (cioè, il paradosso di Russel non dà contraddizione). Il motivo è che l'eliminazione del taglio per l'ingenua teoria degli insiemi senza contrazione può essere dimostrata da un semplice argomento di riduzione delle dimensioni (come quello che ho dato sopra) che non si basa sulla complessità delle formule. Tramite la corrispondenza Curry-Howard, questa è esattamente la normalizzazione del lambda-calcolo affine non tipizzato. È traducendo il paradosso di Russel in logica lineare e "modificando" le modalità esponenziali in modo che nessuna contraddizione potesse essere derivata dal fatto che Girard avesse escogitato una logica lineare leggera. Come accennato in precedenza, in termini computazionali la logica lineare leggera fornisce una caratterizzazione delle funzioni calcolabili nel tempo polinomiale. In termini di teoria della dimostrazione, una teoria dell'insieme ingenuo coerente può essere definita nella logica lineare leggera in modo tale che le funzioni complessivamente dimostrabili siano esattamente le funzioni calcolabili del tempo polinomiale (c'è un altro articolo di Terui su questo, "Teoria dell'insieme affine di luce: un'ingenua teoria del tempo polinomiale ", Studia Logica 77, 2004).
L'articolo originale di Church and Rosser, "Alcune proprietà della conversione", descrive qualcosa che potrebbe essere un esempio di ciò che stai cercando.
Pertanto, anche se puoi scrivere termini non terminanti nel calcolo lambda (non tipizzato) rigoroso, ogni termine con una forma normale si normalizza fortemente; cioè, ogni sequenza di riduzioni raggiungerà quella forma normale unica.
Eccone uno divertente, di Neil Jones e Nina Bohr:
Terminazione di chiamata per valore nel tipizzato
Il vantaggio della digitazione, ovviamente, è sia il basso costo di complessità che la modularità dell'approccio: in generale le analisi di terminazione sono molto non modulari, ma la digitazione può essere eseguita "pezzo per pezzo".