Combinatore universale il più piccolo possibile


17

Sto cercando il combinatore universale più piccolo possibile , misurato dal numero di astrazioni e applicazioni richieste per specificare tale combinatore nel calcolo lambda . Esempi di combinatori universali includono:

  • taglia 23: λf.f (fS (KKKI)) K
  • taglia 18: λf.f (fS (KK)) K
  • taglia 14: λf.fKSK
  • taglia 12: λf.fS (λxyz.x)
  • taglia 11: λf.fSK

dove S = λxyz.xz (yz) di dimensione 6 e K = λxy.x di dimensione 2 sono i combinatori del calcolo del combinatore SK . I primi 4 esempi sono descritti in questo documento .

Le mie domande sono:

  • Esistono combinatori universali di dimensioni inferiori?
  • Qual è il combinatore universale più piccolo possibile?

EDIT: vedi anche /math//a/180263/76284 , che ha λazbc.bc(a(λy.c))(che sarebbe di dimensione 8 , corrispondente alla somma delle dimensioni della base SK). Qualcuno sa come esprimere S e K da questo combinatore?



Qual è la tua definizione di taglia? Puoi scriverlo come una funzione?
Joshua Herman,

Dato che 6 + 2 = 8 <11, questo mi chiedo se {S, K} è la base più piccola di combinatori misurata dalla dimensione totale?
Noam Zeilberger,

La tua modifica recente sembra piuttosto una risposta (parziale).
Emil Jeřábek sostiene Monica il

Con quale rigore stai definendo " combinatore "? Deve essere nella forma in λx*.Ecui Eè privo di astrazione?
Peter Taylor,

Risposte:


9

Va notato che trovare combinatori con determinate proprietà di riduzione è sempre difficile e trovare il più piccolo di questi combinatori può essere facilmente indecidibile (per motivi banali, poiché può essere indecidibile dimostrare che una certa applicazione del combinatore si ferma anche).

Esistono diverse semplici domande aperte di sapore simile, ad esempio i problemi n. 4, n. 6 e n. 10 dell'elenco TLCA di problemi aperti .

Una cosa da notare è che il tuo combinatore ha certamente bisogno di avere almeno 2 variabili associate, una delle quali è duplicata (come ogni set completo di combinatori) e una deve essere cancellata. Ciò pone un limite inferiore di 4, penso (2 astrazioni e 2 apparenze di una variabile), che non è così lontano dal limite superiore di 11.

Modifica: i commenti e il riferimento di Noam spingono il limite inferiore a 5! Non sarei sorpreso se la dimostrazione richiedesse anche la visualizzazione della variabile extra, il che ci spingerebbe a 6.


3
In realtà, due variabili non sono sufficienti ( dl.acm.org/citation.cfm?id=2100917 , cstheory.stackexchange.com/a/36344/674 ), quindi questo dà un limite inferiore leggermente più alto (dimensione 5 = 3 astrazioni e 2 applicazioni).
Noam Zeilberger,

@NoamZeilberger va bene, è un risultato fantastico di cui non ero a conoscenza!
cody

7

Per la tua prima domanda, credo che questo documento possa essere d'aiuto. Ha un calcolo combinatore a 6 bit che è anche un UTM. Inoltre ha un combinatore universale che sembra avere la dimensione 7 con un elemento dato quello che vuoi. Lo chiamano Zot. http://arxiv.org/pdf/cs/0508056v1.pdf

Non sono sicuro che tu possa dire o dimostrare che esiste un combinatore minimo. Il documento suggerirebbe che dovrebbe essere almeno inferiore a 6 bit.


2
Il combinatore di Zot è in realtà l'ultimo elencato nell'OP: λx.xSK (condiviso con le sue lingue principali, Iota e Jot), che ha lunghezza 11. Nel "calcolo combinatore a 6 bit" (Keraia), il "6 bit" è la dimensione dell'UTM; e sembra che sia solo una codifica del calcolo lambda, non un calcolo combinatore (e quindi non ha un combinatore universale incorporato).
2012rcampion,
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.