Klop, van Oostrom y de Vrijer tienen un documento sobre el cálculo lambda con patrones.
http://www.sciencedirect.com/science/article/pii/S0304397508000571
En cierto sentido, un patrón es un árbol de variables, aunque solo lo estoy considerando como una tupla anidada de variables, por ejemplo, ((x, y), z), (t, s)).
En el documento mostraron que si los patrones son lineales, en el sentido de que no se repite ninguna variable en un patrón, entonces la regla
(\p . m) n = m [n/p]
donde p es un patrón variable yn es una tupla de términos con exactamente la misma forma que p, es confluente.
Tengo curiosidad por saber si hay desarrollos similares en la literatura para el cálculo lambda con patrones y la regla eta adicional (expansión, reducción o simplemente igualdad).
En particular, por eta, quiero decir
m = \lambda p . m p
Más directamente, tengo curiosidad por saber qué propiedades tendría un cálculo lambda. Por ejemplo, ¿es confluente?
Obliga a cerrar la categoría de clasificación porque obliga a la propiedad que
m p = n p implies m = n
Al usar la regla \ xi en el medio. ¿Pero tal vez algo podría salir mal?
fuente
Respuestas:
Esta no es una respuesta completa; Es un comentario que se hizo demasiado grande.
Si extiende el cálculo lambda mecanografiado con productos con eliminadores proyectivos (es decir, eliminadores de productos
fst(e)
ysnd(e)
), básicamente no hay problemas de ningún tipo. La razón por la que tardó tanto en darse cuenta es porque resulta más natural hacer expansiones eta que reducciones eta . Vea Las virtudes de la expansión Eta de Barry Jay .Si desea que los productos tengan un eliminador de estilo de patrón
Entonces las cosas son más complejas. La principal dificultad con la coincidencia de patrones son las conversiones de conmutación . Es decir, estos cálculos tienen la ecuación
y averiguar (a) qué contexto
C[-]
usar y (b) cómo orientar esta ecuación se vuelve complicado. En mi opinión, el estado del arte para los enfoques de estilo de reescritura son la reescritura extensiva con sumas de Sam Lindley y la equivalencia decisiva con sumas y el tipo vacío de Gabriel Scherer , que consideran el cálculo lambda mecanografiado con productos y sumas.fuente