¿Existen lenguajes indecidibles en la lógica constructivista?


24

La lógica constructivista es un sistema que elimina la Ley del Medio Excluido, así como la Doble Negación, como axiomas. Se describe en Wikipedia aquí y aquí . En particular, el sistema no permite pruebas por contradicción.

Me pregunto, ¿alguien está familiarizado con cómo esto afecta los resultados con respecto a las máquinas de Turing y los lenguajes formales? Noto que casi todas las pruebas de que un lenguaje es indecidible se basan en pruebas por contradicción. Tanto el argumento de la Diagonalización como el concepto de reducción funcionan de esta manera. ¿Puede haber alguna vez una prueba "constructiva" de la existencia de un lenguaje indecidible y, de ser así, cómo sería?

EDITAR: Para ser claros, mi comprensión de la prueba por contradicción en la lógica constructivista fue incorrecta, y las respuestas lo han aclarado.


55
La lógica intuicionista no rechaza las pruebas que dicen "Asumir , derivar una contradicción, por lo tanto ". Puede hacerlo por definición de , como . Lo que no puede hacer es "Asumir , derivar una contradicción, por lo tanto, ". ¬ ϕ ¬ ϕ ϕ ¬ ϕ ϕϕ¬ϕ¬ϕϕ¬ϕϕ
Miles Rout

2
Su edición de la pregunta sobre "pero aún permite la prueba de declaraciones negativas por contradicción" hace que mi respuesta parezca que solo estoy repitiendo lo que el autor de la pregunta ya sabía :(
gelisam

3
En lugar de modificar esta pregunta ya respondida para que haga una pregunta un poco más difícil, ¿qué tal crear (y responder) una pregunta separada?
gelisam

1
@gelisam Sí, como el autor de la pregunta, definitivamente no apoyo la edición. Lo revertiré.
jmite

Respuestas:


18

Sí. No necesita el medio excluido para derivar una contradicción. En particular, la diagonalización aún funciona.

Aquí hay un típico argumento de diagonalización de Conor McBride. Esta diagonalización particular es acerca de lo incompleto, no indecidible, pero la idea es la misma. El punto importante a notar es que la contradicción que deriva no es de la forma "P y no P", sino de la forma "x = x + 1".

Por supuesto, ahora te estarás preguntando si la lógica constructiva admite "x = x + 1" como una contradicción. Lo hace. La propiedad principal de una contradicción es que cualquier cosa se desprende de una contradicción, y usando "x = x + 1", puedo probar constructivamente "x = y" para dos números naturales.

Una cosa que podría ser diferente acerca de una prueba constructiva es la forma en que se define "indecidible". En la lógica clásica, cada idioma debe ser decidible o indecidible; entonces "indecidible" simplemente significa "no decidible". Sin embargo, en la lógica constructiva, "no" no es una operación lógica primitiva, por lo que no podemos expresar indecidibilidad de esta manera. En cambio, decimos que un lenguaje es indecidible si asumir que es decidible conduce a una contradicción.

De hecho, aunque "no" no es primitivo en lógica constructiva, generalmente definimos "no P" como azúcar sintáctico para "P puede usarse para construir una contradicción", por lo que una prueba por contradicción es en realidad la única forma de probar constructivamente una declaración de la forma "no P" como "el lenguaje L es indecidible".


En mi opinión, su respuesta no distingue claramente entre la ley del medio excluido ( ) y el principio de no contradicción ( ). Este último se mantiene en la lógica constructiva / intuicionista. PAGS¬PAGS¬(PAGS¬PAGS)
Miles Rout

9

Cuando se habla de la probabilidad de las declaraciones clásicas de manera constructiva, a menudo importa cómo las formulamos. Las formulaciones clásicamente equivalentes no necesitan ser equivalentes de manera constructiva. También importa lo que quiere decir exactamente con una prueba constructiva, hay varias escuelas de constructivismo.

Por ejemplo, una afirmación que indique que hay una función total no controlable no sería cierta en aquellos sabores de las matemáticas constructivas que suponen la Tesis de la Iglesia-Turing (es decir, cada función es computable) como un axioma.

Por otro lado, si tiene cuidado, puede formularlo de modo que sea demostrable: para cualquier enumeración computable de funciones computables totales, hay una función computable total que no está en la enumeración.

Puede que esta publicación de Andrej Bauer le resulte interesante.

ps: También podemos ver la diagonalización desde la perspectiva teórica de la categoría. Ver


4

Yo creo que la prueba cardinalidad todavía lleva a cabo, lo que demuestra la existencia de lenguas que no son computables idiomas (por lo que definitivamente indecidible).

La prueba inmediata es bastante sencilla, simplemente observa que las máquinas de Turing están codificadas en un alfabeto finito (también podría ser binario), por lo que hay innumerables, y el conjunto de todos los idiomas en un alfabeto fijo (también podría ser binario nuevamente ) es el conjunto de todos los subconjuntos del conjunto de cadenas sobre ese alfabeto, es decir, el conjunto de potencia de un conjunto contable, y debe ser incontable. Por lo tanto, hay menos máquinas de Turing que idiomas, por lo que algo no es computable.

Esto me parece lo suficientemente constructivo (aunque sería imposible realizarlo físicamente, le brinda una forma de señalar un conjunto de idiomas y saber que uno no es computable).

Entonces podríamos preguntarnos si es posible demostrar que los conjuntos contables e incontables tienen una cardinalidad diferente, en particular, evitan la diagonalización. Creo que esto todavía es posible. El argumento original de Cantor también parece ser adecuadamente constructivo.

Por supuesto, esto realmente debe ser verificado por alguien que sepa mucho más sobre la lógica constructivista.


3

Creo que estoy de acuerdo con otros en que el argumento de la diagonalización es constructivo, aunque por lo que puedo decir, hay un cierto desacuerdo sobre esto en algunos círculos.

Quiero decir, supongamos que estamos viendo el conjunto de todos los idiomas decidibles. Puedo construir un lenguaje indecidible usando la diagonalización. Vale la pena señalar que no considero que el "constructivismo" y el "finitismo" sean lo mismo, aunque históricamente creo que estos fueron arcos relacionados.

Primero, creo que todos, incluso los constructivistas, están de acuerdo en que el conjunto de lenguajes decidibles es contable. Dado que el conjunto de máquinas de Turing es contable (podemos codificar todas las TM válidas utilizando cadenas finitas), este acuerdo se sigue con bastante facilidad.

L1,L2,...,Lk,...

  1. Considera la cuerda 0 0yo
  2. 0 0yoLyo0 0yo
  3. 0 0yoLyo0 0yo

norteL1,L2,...,Lnorte

Entonces, técnicamente, hemos construido un lenguaje que "no es decidible"; Si un constructivista argumentaría que "no decidible" no debe confundirse con "indecidible" es una pregunta interesante, pero que estoy mal equipado para responder.

Para aclarar, lo que creo que esto demuestra es lo siguiente: podemos demostrar constructivamente que existen lenguajes no decididos por las máquinas de Turing. Cómo elige interpretar eso dentro de un marco particular es una pregunta difícil.

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.