Conversión η frente a extensionalidad en extensiones de cálculo lambda


14

A menudo me confunde la relación entre la conversión η y la extensionalidad.

Editar: Según los comentarios, parece que también estoy confundido acerca de la relación entre equivalencia extensional y equivalencia observacional. Pero al menos en Agda con igualdad extensional para funciones (como postulado), y para un cálculo lambda de tipo simple (que tiene una semántica completamente abstracta, si no me equivoco), la equivalencia denotativa es lo mismo que la equivalencia observacional. Siéntase libre de corregirme en comentarios o respuestas; Nunca he recibido educación sistemática sobre estos asuntos.

En el cálculo lambda sin tipo, la regla eta proporciona el mismo sistema de prueba que la regla de extensionalidad, como lo prueba Barendregt (citado en una respuesta a esta pregunta ). Entiendo que eso significa que el sistema de prueba con la regla eta está completo para la equivalencia observacional (de otras respuestas, eso podría necesitar la regla de la regla ξ, es decir, la reducción bajo las carpetas IIUC; no tengo ningún problema para agregar esa regla también) .

Sin embargo, ¿qué sucede si cambiamos a un cálculo mecanografiado y agregamos extender este cálculo con tipos de bases adicionales y las correspondientes formas de introducción y eliminación? ¿Podemos escribir un sistema de prueba completo para la equivalencia observacional? Hablaré sobre sistemas de prueba en forma de semántica axiomática, siguiendo los Fundamentos de los lenguajes de programación (FPL) de Mitchell; El sistema de prueba / semántica axiomática define la equivalencia del programa.

Pregunta 1 : ¿el teorema de Barendregt se extiende a STLC? ¿Es la equivalencia η equivalente a la extensionalidad en ese contexto?

Estoy navegando discusión del PCF de FPL (pero no la acabó la sección todavía), y parece que una vez que añadir pares, extensionalidad requiere una regla adicional, a saber, el emparejamiento sobreyectiva: pair (Proj1 P, Proj2 P) = P. Curiosamente, esta regla relaciona la introducción y eliminación de pares exactamente como la regla η relaciona la introducción y eliminación de funciones.

Pregunta 2 : ¿Es suficiente agregar el axioma de emparejamiento dejetivo para probar la extensionalidad en cálculo λ de tipo simple con pares? editar : Pregunta 2b : ¿es el emparejamiento dejetivo una ley η, como las leyes η mencionadas en este documento , debido a la similitud estructural que menciono?

Vamos a PCF ahora. Las descripciones de igualdad extensional que he visto demuestran que la extensionalidad implica una regla de prueba por inducción, pero no dicen si eso es suficiente. Dado que PCF es Turing completo, la igualdad extensional es indecidible . Pero eso no implica que no haya un sistema de prueba completo, ya que la longitud de las pruebas no tiene límites. Más relevante aún, tal sistema de prueba podría contradecir los teoremas de incompletitud de Gödel. Y ese argumento podría aplicarse incluso a PCF sin él fixy al Sistema T. de Gödel.

Pregunta 3 : ¿Existe un sistema de prueba completo para la equivalencia observacional en PCF? ¿Qué pasa con PCF sin fix?

Actualización: abstracción completa

Respondo aquí sobre el comentario sobre la abstracción completa. Creo que PCF sufre de dos tipos diferentes de problemas: tiene no terminación (vía corrección), lo que causa la pérdida de la abstracción completa, pero también tiene números naturales. Ambos problemas hacen que la equivalencia observacional sea difícil de tratar, pero creo que son independientes el uno del otro.

Por un lado, PCF pierde la abstracción completa porque es paralelo o vive en el dominio semántico (Plotkin 1977), y eso parece tener que ver con la no determinación. Ralph Loader (2000, "La PCF finitaria no es decidible") muestra que la PCF finitaria (sin productos naturales, pero sin terminación) ya es indecidible; por lo tanto, (si resumo correctamente) una semántica completamente abstracta no puede restringirse a dominios con operaciones computables.

Por otro lado, tome el Sistema T de Gödel, que no tiene falta de determinación. (No estoy seguro de que tenga una semántica completamente abstracta, pero supongo que sí, porque el problema solo se menciona para PCF; el dominio debe contener funciones recursivas primitivas de orden superior). Fundamentos prácticos de Harper para lenguajes de programación discute equivalencia observacional para este lenguaje; Segundo. 47.4 se titula "Algunas leyes de igualdad" y muestra algunas reglas de prueba admisibles para la equivalencia observacional. En ninguna parte dice si el sistema de prueba está completo, por lo que supongo que no lo está, pero tampoco dice si se puede completar. Mi mejor conjetura se remonta al teorema de incompletitud de Gödel.


1
Creo que podría responder algo de esto, pero estoy confundido sobre qué es lo que estás preguntando. La pregunta a la que se refiere no es sobre la equivalencia del programa. ¿Te refieres a la equivalencia observacional? ¿Para qué semántica operativa? Entonces, esencialmente, si explica exactamente a qué se refiere "la prueba" en la Pregunta 1, creo que puedo adivinar lo que está sucediendo. Mi mejor suposición hasta ahora: le gustaría una teoría de la ecuación que sea completa para la equivalencia observacional, y nos pregunta si las reglas son suficientes. ¿Es asi? η
Andrej Bauer

@AndrejBauer: su suposición es correcta, comenzaré a actualizar la pregunta.
Blaisorblade

No estoy seguro de la semántica operativa: ¿eso marca la diferencia para los teoremas originales?
Blaisorblade

Traté de refinar la pregunta aún más. Pero sigo pensando que tu mejor suposición es correcta.
Blaisorblade

Aquí hay un pequeño problema: realmente no está claro qué η es para los números naturales! Si solo tiene funciones y tipos de productos, entonces está claro: los términos son observacionalmente equivalentes si son iguales a . En términos más generales, creo que esto está relacionado con el problema de la abstracción completa . βη
cody

Respuestas:


7

No estoy seguro de poder responder completamente a su pregunta, pero le daré una oportunidad y haré algunas preguntas propias que podrían estimular una discusión adicional sobre este tema.

Mi primer punto es este: se dice que dos términos en el cálculo λ sin tipo son observablemente iguales si para cada término M : M t  termina M t  termina  Donde termina significa "tiene una forma β- normal"t,t λMETRO

M t terminates M t terminates 
β

Me parece más natural considerar términos con "agujeros" o contextos lugar de simplemente términos M y escribir E [ t ] en lugar de M t . Las dos vistas son ciertamente equivalentes (si las variables no están vinculadas por el contexto), ya que la abstracción le permite cambiar el contexto E [E[_]ME[t]M t en el término λ x . E [ x ] .E[_]λx.E[x]

¡Ahora es un hecho que la igualdad observacional en el cálculo sin tipo no es capturada por la igualdad ! De hecho, hay toda una clase de términos, que no terminan ni tienen formas normales de cabeza y, por lo tanto, todos son observablemente iguales. A veces se los denomina términos perpetuos o términos sin solución , y aquí hay dos términos: ( λ x . X x ) ( λ x . X x ) y ( λ x . X x x ) ( λ x .βη

(λx.x x)(λx.x x)
Es bastante fácil demostrar que estos términos no soniguales a β η .
(λx.x x x)(λx.x x x)
βη

Si se identifican todos los términos perpetuos, la igualdad de observación queda completamente capturada por un resultado clásico (véase el teorema de Barendregt 16.2.7).


Ahora para cálculos mecanografiados. Consideremos primero el cálculo simple de sin números naturales. ¡La definición anterior de igualdad de observación se vuelve trivial, ya que cada término se normaliza! Necesitamos una distinción más fina. Utilizaremos el valor de igualdad t 1t 2 para términos cerrados, definidos por inducción sobre el tipo de t 1 y t 2 . Primero agreguemos para cada tipo A , un número infinito de constantes c A , c A , c λt1t2t1t2A. Elegiremos algunas constantescxcA,cA,CUN,...CXdel tipo apropiado para corresponder a cada variable .x

  1. En la base tipo , t 1t 2 si la forma normal de la cabeza β de t 1 es c u 1 ... u n y la de t 2 es d v 1 ... v n y c = d y u 1v 1 , ... , u nv n en sus respectivos tipos.Bt1t2βt1c u1unt2d v1vnc=du1v1,,unvn

  2. En el tipo de flecha, si ambos términos β- reducen a una abstracción λ .t1t2βλ

Tenga en cuenta que solo uso la conversión en esta definición.β

Ahora defino los contextos para que sean: con el contexto principal, aplicación, abstracción y sustitución (en términos cerrados) respectivamente.

[_]E[_] ut E[_]λx. E[_]E[_]θ

Entonces podemos definir y t ' , bien tipado de tipo TttT para ser observacionalmente equivalente si y solo si para cada contexto tal que E [ t ] , E [ t ] estén bien tipados y cerrados . E [ t ] E [ t ] escribiremos t =E[_]E[t],E[t]

E[t]E[t]
en este casot=obst

Ahora es fácil observar que si entonces t = o b s t . La otra dirección es menos trivial, pero también es válida: de hecho, si t = o b st=βηtt=obst , entonces podemos mostrar que los términos son iguales para β η por inducción en el tipo:t=obstβη

  1. En el tipo base, simplemente tome como [ _ ] θ , con θ la sustitución que envía x a c x . Tenemos E [ t ] = t θ y E [ t ] = t θ . Tenemos t θ β c x u 1 θ ... u n θ y t θ E[_][_]θθxcxE[t]=tθE[t]=tθtθβcx u1θunθ θ v i θ ! El truco aquí es enviar x . Entonces tenemos c x = c x y entonces x = x . Ahora no podemos concluir inmediatamente que u i θ = β η v i θ . De hecho, si u i y v i son abstracciones λ , entonces trivialmente u itθβcx v1θvnθcx=cxx=xuiθ=βηviθuiviλuiθviθxa y repetir esto tantas veces como sea necesario. Estoy un poco confuso con los detalles aquí, pero la idea es similar al teorema de Böhm ( Barendregt nuevamente 10.4.2).

    λy.cx~ (y1c1)(yncn)
  2. En el tipo de flecha, tome como [ _ ] c y , es decir, aplicación a c y con c y e y no en t o t ' . Por la hipótesis de inducción tenemos: t c y = β η t c y entonces t y = β η t y Lo que da λ y . t y = βE[_][_] cycycyytt

    t cy =βη t cy
    t y =βη t y
    finalmente porη-igualdad: t = β η t λy.t y =βη λ.t yη
    t =βη t

¡Eso fue más difícil de lo esperado!


Bien, abordemos el sistema T. Agreguemos un tipo a la mezcla, los constructores 0 y S , y un recursor r e c T para cada tipo T , con las " reglas β " r e c T u v 0 β u r e c T u v ( S n ) β v n ( r e c TN0SrecTTβ

recT u v 0βu
recT u v (S n)βv n (recT u v n)

Queremos probar el mismo teorema que el anterior. Es tentador agregar "η

λx.x =βη recN 0 (λk m.S m)
m

f (S x) =βη h x (f x)f t =βηrecT (f 0) h t
xηh

MtMTtM (S S 0)n S1Mn0

M

tM =λx.0
βηM
0 =βη S 0
TtM=λx.0

¡Gracias por tu respuesta! Mi primera pregunta es: ¿es habitual tener sustituciones en contextos de equivalencia observacional? Al menos el artículo LCF de Plotkin (1997) no hace eso (aunque puedo imaginar que algo así tendría sentido en algún cálculo de cierre, donde algo como las sustituciones es parte de la sintaxis). Pero puedo ver fácilmente para cada contexto de "sustitución" que uno puede definir un contexto más "estándar" (para mí) que usa solo abstracción lambda y aplicación, digamos (λx. []) C_x; así que supongo que la equivalencia observacional anterior es equivalente a la definición a la que estoy acostumbrado.
Blaisorblade

t=λx.00=βηS0M0=βηS00βηS 0

METROt=λX.0 0

1
3. Tenga en cuenta que PAGUN puede probar 0 01, pero no "PAGUN0 0=1", así que puedes intentar buscar esa prueba para siempre. He usado el mismo tipo de truco anterior para encontrar una igualdad de observación en Teso no puede ser capturado por ninguna regla de igualdad "razonable". Siempre puedes agregar la regla
F 0 0=sol 0 0F (S 0 0)=sol (S 0 0)...F=sol
pero eso no sería efectivo (¡y completo!). Aunque tengo la sensación de que no es lo que estás buscando.
cody

1
¡Así es! Aunque a veces tiene sentido considerar tales sistemas "infinitarios" para propósitos de prueba teórica (por ejemplo, análisis ordinal).
cody
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.