Estoy buscando el combinador universal más pequeño posible , medido por el número de abstracciones y aplicaciones requeridas para especificar dicho combinador en el cálculo lambda . Los ejemplos de combinadores universales incluyen:
- tamaño 23: λf.f (fS (KKKI)) K
- tamaño 18: λf.f (fS (KK)) K
- tamaño 14: λf.fKSK
- tamaño 12: λf.fS (λxyz.x)
- tamaño 11: λf.fSK
donde S = λxyz.xz (yz) de tamaño 6 y K = λxy.x de tamaño 2 son los combinadores del cálculo del combinador SK . Los primeros 4 ejemplos se describen en este documento .
Mis preguntas son:
- ¿Hay algún combinador universal que sea más pequeño?
- ¿Cuál es el combinador universal más pequeño posible?
EDITAR: Consulte también /math//a/180263/76284 , que tiene λazbc.bc(a(λy.c))
(que sería de tamaño 8 , que coincide con la suma de tamaños de la base SK). ¿Alguien sabe cómo expresar S y K de este combinador?
λx*.E
dondeE
está libre de abstracción?Respuestas:
Cabe señalar que encontrar combinadores con ciertas propiedades de reducción siempre es difícil, y encontrar el combinador más pequeño puede ser fácilmente indecidible (por razones triviales, ya que puede ser indecidible probar que cierta aplicación del combinador incluso se detiene).
Hay varias preguntas abiertas simples de un sabor similar, por ejemplo, problemas # 4, # 6 y # 10 de la lista TLCA de problemas abiertos .
Una cosa a tener en cuenta es que su combinador ciertamente necesita tener al menos 2 variables ligadas, una de las cuales está duplicada (como cualquier conjunto completo de combinadores) y una necesita ser borrada. Creo que esto pone un límite inferior de 4 (2 abstracciones y 2 apariencias de una variable), que no está muy lejos del límite superior de 11.
Editar: ¡los comentarios y la referencia de Noam llevan el límite inferior a 5! No me sorprendería si la prueba también requiere que aparezca la variable adicional, lo que nos llevaría a 6.
fuente
Para su primera pregunta, creo que este documento puede ayudar mucho. Tiene un cálculo combinador de 6 bits que también es un UTM. También tiene un combinador universal que parece tener un tamaño 7 con un elemento dado lo que quieres. Lo llaman Zot. http://arxiv.org/pdf/cs/0508056v1.pdf
No estoy seguro de si puedes decir o probar que hay un combinador mínimo. El documento sugeriría que tendría que tener al menos menos de 6 bits.
fuente