11 votos

La relación entre las grandes cardenales y a la finalización del programa

En mathoverflow, hay una lógica de pregunta (los detalles no son particularmente relevantes) y un usuario realiza las siguientes observaciones en una respuesta:

...lenguajes de programación modernos tipo de teorías, de modo afirmaciones acerca de si todos los programas en un determinado idioma es total o no puede reducirse a afirmaciones acerca de la existencia de grandes cardenales. Meta-matemáticamente, este es un punto trivial, pero a menudo la gente no ve inmediatamente que grandes cardenales cantidad a los hechos acerca de la terminación de los programas de ordenador. - Neel Krishnaswami

Hace casi dos años un usuario deja un comentario:

Esto es muy interesante. Que grandes los cardenales son utilizadas de esta manera? Puede alguien que me señale una referencia?

Y el mes pasado, otro usuario deja un comentario:

¿Hay alguna referencia para la relación entre las grandes cardenales y terminación de los programas en un lenguaje de programación?

Mi pregunta está en línea con el contestar los comentarios, es decir, puede que alguien explique la relación entre las grandes cardenales y a la finalización del programa?

(No estoy seguro de la correcta etiquetas para incluir. Tipo de teoría? Compuational complejidad? Las fundaciones? Por favor, editar o comentario para más apropiado etiquetas)

6voto

ManuelSchneid3r Puntos 116

Esto no es realmente una respuesta, pero es demasiado largo para un comentario. Sólo quiero ofrecer algunos comentarios sobre los enlaces de respuesta. Re: real de sus preguntas, usted puede encontrar este artículo muy interesante.

Creo que Neel$^*$ comentario es un poco engañoso.

Vamos a empezar desde el lado básico de las cosas: cómo hacer grandes cardenales implica hechos acerca de la aritmética? (A través de Godelization, datos sobre el comportamiento del programa son "realmente" los hechos acerca de la aritmética.) La respuesta más sencilla es a través de la coherencia de las reclamaciones. La declaración de "ZFC es consistente" es una $\Pi^0_1$ frase (la aritmética de la jerarquía si usted no está familiarizado con él). También está implícito (más de ZFC) por la existencia de un débil inaccesible cardenal; esto es debido a que ZFC prueba la declaración de la "Si $\alpha$ es débilmente inaccesible, a continuación, $L_\alpha\models$ ZFC." Así que este es un ejemplo de un hecho acerca de la aritmética que es implicado por una gran cardenal de la declaración.

Esto puede ser directamente se convirtió en una declaración sobre la terminación del programa, de la siguiente manera. Para un determinado computably axiomatizable teoría de la $T$ (tales como ZFC), podemos escribir un programa $\pi_T$, lo que detiene el fib $T$ es inconsistente, básicamente, $\pi_T$ sólo busca una prueba de una contradicción de $T$, y se detiene el fib se encuentra uno.

Como un aparte: la tarea de encontrar razonablemente pequeños programas que "representan" a ciertas propiedades de una determinada teoría, o al menos que tengan propiedades que no puede ser comprobado en una teoría dada, es interesante. Ver, por ejemplo, este trabajo por Aaronson y Yedidia en un pequeño programa que se ejecuta siempre, pero que ZFC no pueden probar que duraría para siempre.

Esencialmente, los siguientes es un hecho básico acerca de la computabilidad y provability:

La consistencia de un determinado computably axiomatizable teoría de la $T$ es equivalente a la no terminación de un programa asociado a $T$, y la consistencia de las declaraciones siguen a menudo de grandes cardenales.

Para que un sentido en el que los grandes cardenales pueden conducir a las declaraciones sobre el comportamiento de los programas. Es incluso mejor que eso: el programa de $\pi_T$ asociado a $T$ es óptimo, en el sentido de que una teoría razonable (mucho mucho menos de ZFC - incluso menos de PA!) demuestra que $\pi_T$ termina iff $T$ es inconsistente. En particular, para cada gran cardenal axioma a podemos asociar un programa de $\sigma_A$ tal que $\sigma_A$ termina iff ZFC+a es inconsistente. Así:

La consistencia con ZFC de una gran cardenal axioma es equivalente a la no terminación de un determinado programa.

Por lo que este se conecta a la consistencia de los grandes cardenales con la no terminación de los programas.


Pero eso no es lo que Neel dijo! Dijo que los grandes cardenales fueron equivalentes a las declaraciones acerca de la terminación del programa.

Ahora en la cara de ella, esto es rotundamente falso: las declaraciones acerca de la terminación del programa son aritméticos de las declaraciones, y estos no pueden depender de la verdad real de gran cardenal axiomas. Precisamente, si a es (lo que generalmente se reconoce como) un gran cardenal axioma, entonces ZFC qué no probar "$\varphi$ es equivalente a Una" o incluso "$\varphi$ implica Un" para cualquier aritmética sentencia de $\varphi$ menos que ZFC en realidad refuta A.

Esto puede parecer misterioso, pero en realidad hay mucho menos de lo que el ojo. Revisión de un gran cardenal axioma A = "no es un cardenal $\kappa$ tal que [las cosas]." Las [cosas] siempre implica que ese $\kappa$ da un modelo de ZFC, es decir, que $L_\kappa\models$ ZFC (este es un problema sociológico reclamación acerca de lo que constituye un "gran cardenal" - el término "gran cardenal" no es precisa).

OK, así que supongo que ZFC no refutar A., a Continuación, por Gödel teorema de completitud, ZFC + a tiene UN modelo de $M$. Ahora vamos a $\kappa$ ser el menos ordinal en $M$ tal que cualquiera de las $M\models$[cosas]$(\kappa)$ o para algunos $\alpha\in Ord^M$, $\kappa\in L_\alpha^M$ y $L_\alpha^M\models$[cosas]$(\kappa)$. (Esto no es necesariamente el real menos el testimonio de Una - que podría ser más pequeño.) En la nota anterior, se ha $L_\kappa^M\models$ ZFC, pero por definición de $\kappa$ lo que también ha $L_\kappa^M\not\models$ A. sin Embargo, el conjunto de los números naturales no cambió entre el $M$ $L_\kappa^M$ (ya que todo lo que hicimos fue "cortado ( $L$ ) $M$ off" en algún nivel infinito), por lo $L_\kappa^M$ satisface todos la misma aritmética de los hechos como $M$ - en particular, el valor de verdad de $\varphi$ no cambio. Hemos demostrado:

Si a es Una gran cardenal axioma y $\varphi$ es una media aritmética frase coherente (más de ZFC) con Un, a continuación, $\varphi$ no prueba A.

Y el caso al $\varphi$ no es consistente (más de ZFC) con Un supuesto trivial, ya que, a continuación, $\varphi$ no puede ser equivalente (más de ZFC) con Un menos que sea inconsistente.


Así que ¿en qué sentido fue Neel la afirmación correcta?

Creo que él estaba haciendo un punto acerca de la semántica de los lenguajes de programación. Este no es un tema que yo sé mucho acerca, así que puedo estar equivocado, pero mi entendimiento queda de la siguiente manera:

La idea aquí es crear una estructura matemática asociada a un determinado lenguaje de programación. Mi entendimiento es que a menudo, si no generalmente, esta estructura es una categoría con diversas buenas propiedades y, posiblemente, una estructura adicional. Por cierto, los detalles precisos de la estructura puede ser sutil - ver, por ejemplo, esta discusión de si el "categórica" la semántica de Haskell en realidad es una categoría. (Estoy totalmente calificado para comentar sobre este tema específico, por el camino. Si usted está interesado, se puede hacer una pregunta aquí sobre ella.)

El punto ahora es que el siguiente puede, y al parecer no, se producen:

Hay una semántica $\mathcal{S}$ para un lenguaje de programación FOO, de tal manera que la no terminación de ciertos programas en FOO son equivalentes a la existencia de ciertas correspondientes gran cardenal axiomas, debidamente re-interpretado en el marco pertinente, en la estructura de la $\mathcal{S}$.

Es decir, la construcción de $\mathcal{S}$ desde FOO es de alguna manera canónica, y no estamos hablando de la no terminación de la reclamación en el sentido de la auténtica existencia de un gran cardenal, sino más bien en el sentido de un hecho acerca de la estructura interna del objeto $\mathcal{S}$.

Note la frase "debidamente re-interpretado." Un gran cardenal axioma en el lenguaje de la teoría de conjuntos no tienen sentido en el contexto de, por ejemplo, la categoría de teoría. En lugar de eso, tenemos que buscar un equivalente apropiado. Un puro ejemplo de esto es la equivalencia, debido a Blass, de la existencia de un cardinal medible y la existencia de un functor exacto $F$ a partir de Conjuntos de Conjuntos que no es, naturalmente, equivalente a la identidad. Ahora, si se nos ha dado algunos "apropiado" de la categoría de $\mathcal{C}$, tal vez tiene sentido decir "$\mathcal{C}$ piensa que existe un cardinal medible" iff la declaración "no es un functor exacto $\mathcal{C}\rightarrow\mathcal{C}$ no es equivalente a la identidad" es cierto.

Así que sospecho que esto es lo que Neel significa cuando dice que las afirmaciones acerca de la terminación son equivalentes a un conjunto teórico de reclamaciones: que cuando nos fijamos en la canónica de la semántica de un lenguaje de programación determinado, terminación hechos se reflejan en los internos conjunto teórico de las propiedades de la estructura.


$^*$No estoy seguro de lo que la etiqueta es con respecto a los nombres de; he usado el primer nombre, pero estoy feliz de utilizar el nombre completo o título profesional o etc. si ese es el mejor estándar.

1voto

sewo Puntos 58

Creo que el comentario que cita significa menos de lo que usted piensa.

Primero de todo, no se trata de si los programas de terminar, pero si todos los programas en un lenguaje de programación determinado terminar. Esto es a menudo una pregunta trivial: En todos los realmente utilizados general-lenguaje de programación de propósito está bastante claro que por supuesto que hay una forma de escribir un bucle infinito.

También hay no generales de los lenguajes de programación que están deliberadamente diseñados de tal forma que sólo permiten la terminación de los programas a ser escrito. Como todos sabemos, esto tiene un costo: inevitablemente habrá un total de funciones recursivas que el lenguaje no puede expresar.

Neel es/era al parecer se dedican a empujar los límites de que: encontrar una manera de definir un lenguaje de programación que todos los programas válidos terminar, y sin embargo, una útil grandes de la clase de las funciones puede ser escrito de una manera razonablemente sencilla. Cuando dice "lenguajes de programación modernos tipo de teorías", está expresando la esperanza/creencia de que las buenas soluciones a ese problema vendrá como un sistema integrado de resultados de la lengua del tipo de sistema de ... las reglas que impiden que un programa de hacer sin sentido/cosas peligrosas como el tratamiento de un número a partir de su entrada como una dirección de memoria, en vez de un tornillo-en el análisis estático que sólo existe para verificar que los programas son en total. Este tipo de sistemas están estrechamente relacionados con el tipo de teorías en cuanto a la lógica y a la categoría de teoría.

(Tenga en cuenta que para la práctica de los propósitos de un idioma, que garantiza que todo lo que es total es de dudosa utilidad: si se está ejecutando el código que se obtuvo de una fuente no confiable y quiero estar seguro de que no engañarlo en la ejecución de algo que nunca termina, usted también quiere estar seguro de que no van a engañar a usted a tratar de calcular Graham número en base 23, incluso a pesar de que teóricamente es una tarea de terminación).

Lo Neel parece estar diciendo es que algunas de las soluciones propuestas tienen la propiedad de que ZFC no puede demostrar que el trabajo (como en, de que todos los programas válidos en tal-y-tal sistema termina), pero que ZFC plus tal y tal, a menudo aceptada por la gran cardenal suposición puede.

Probablemente no, a la luz de los días de Noé argumentos, afirmando que "este tipo de sistema funciona" implica que tales y tan grandes cardenal debe existir. Pero es posible que él pueda demostrar que "este tipo de sistema funciona" equivalente a "tal y tal gran cardenal axioma es relativamente consistente con ZFC". Estas son las declaraciones de el mismo sabor (hay conexiones sólidas entre la consistencia de la lógica y de la totalidad de los lenguajes de programación, como por ej. el de Curry-Howard correspondencia), por lo que no sería escandaloso para que ellos se implican el uno al otro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X